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 2021/02/09 22:01:29 UTC

[freemarker-site] branch asf-site updated: Upload 2.3.31 documentation for voting

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

ddekany pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/freemarker-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 103cfcb  Upload 2.3.31 documentation for voting
103cfcb is described below

commit 103cfcb309f46bb4deb21d1b580882f3e3e05c33
Author: ddekany <dd...@apache.org>
AuthorDate: Tue Feb 9 23:01:11 2021 +0100

    Upload 2.3.31 documentation for voting
---
 builds/2.3.31-preview/alphaidx.html                | 1793 ----
 builds/2.3.31-preview/app.html                     |   71 -
 builds/2.3.31-preview/app_eccn.html                |   73 -
 builds/2.3.31-preview/app_faq.html                 | 2006 -----
 builds/2.3.31-preview/app_install.html             |  114 -
 builds/2.3.31-preview/app_legal.html               |   71 -
 builds/2.3.31-preview/app_license.html             |  294 -
 builds/2.3.31-preview/app_versions.html            |   71 -
 builds/2.3.31-preview/detailed-toc.html            |   98 -
 builds/2.3.31-preview/dgui.html                    |   71 -
 builds/2.3.31-preview/dgui_datamodel.html          |   71 -
 builds/2.3.31-preview/dgui_datamodel_basics.html   |  259 -
 builds/2.3.31-preview/dgui_datamodel_types.html    |  547 --
 builds/2.3.31-preview/dgui_misc.html               |   71 -
 .../dgui_misc_alternativesyntax.html               |  269 -
 builds/2.3.31-preview/dgui_misc_autoescaping.html  |  775 --
 builds/2.3.31-preview/dgui_misc_namespace.html     |  358 -
 builds/2.3.31-preview/dgui_misc_userdefdir.html    |  629 --
 builds/2.3.31-preview/dgui_misc_var.html           |  229 -
 builds/2.3.31-preview/dgui_misc_whitespace.html    |  327 -
 builds/2.3.31-preview/dgui_quickstart.html         |   74 -
 builds/2.3.31-preview/dgui_quickstart_basics.html  |  162 -
 .../2.3.31-preview/dgui_quickstart_datamodel.html  |  220 -
 .../2.3.31-preview/dgui_quickstart_template.html   |  778 --
 builds/2.3.31-preview/dgui_template.html           |   77 -
 .../2.3.31-preview/dgui_template_directives.html   |  157 -
 builds/2.3.31-preview/dgui_template_exp.html       | 2641 ------
 .../dgui_template_overallstructure.html            |  152 -
 .../dgui_template_valueinsertion.html              |  345 -
 builds/2.3.31-preview/gloss.html                   |  787 --
 builds/2.3.31-preview/index.html                   |   90 -
 builds/2.3.31-preview/pgui.html                    |   71 -
 builds/2.3.31-preview/pgui_config.html             |   72 -
 builds/2.3.31-preview/pgui_config_basics.html      |   92 -
 .../2.3.31-preview/pgui_config_custom_formats.html |  769 --
 .../2.3.31-preview/pgui_config_errorhandling.html  |  430 -
 .../pgui_config_incompatible_improvements.html     |  216 -
 .../pgui_config_outputformatsautoesc.html          |  241 -
 builds/2.3.31-preview/pgui_config_settings.html    |  405 -
 .../pgui_config_sharedvariables.html               |  162 -
 .../pgui_config_templateconfigurations.html        |  352 -
 .../pgui_config_templateloading.html               |  389 -
 builds/2.3.31-preview/pgui_datamodel.html          |   72 -
 builds/2.3.31-preview/pgui_datamodel_basics.html   |  122 -
 .../2.3.31-preview/pgui_datamodel_directive.html   |  444 -
 builds/2.3.31-preview/pgui_datamodel_method.html   |  115 -
 builds/2.3.31-preview/pgui_datamodel_node.html     |  140 -
 .../pgui_datamodel_objectWrapper.html              |  447 -
 builds/2.3.31-preview/pgui_datamodel_parent.html   |  146 -
 builds/2.3.31-preview/pgui_datamodel_scalar.html   |  171 -
 builds/2.3.31-preview/pgui_misc.html               |   72 -
 builds/2.3.31-preview/pgui_misc_ant.html           |  130 -
 builds/2.3.31-preview/pgui_misc_beanwrapper.html   |  696 --
 builds/2.3.31-preview/pgui_misc_charset.html       |  191 -
 builds/2.3.31-preview/pgui_misc_jythonwrapper.html |  152 -
 builds/2.3.31-preview/pgui_misc_logging.html       |  268 -
 .../2.3.31-preview/pgui_misc_multithreading.html   |   90 -
 builds/2.3.31-preview/pgui_misc_secureenv.html     |  108 -
 builds/2.3.31-preview/pgui_misc_servlet.html       |  730 --
 builds/2.3.31-preview/pgui_misc_var.html           |  130 -
 builds/2.3.31-preview/pgui_misc_xml_legacy.html    |  530 --
 builds/2.3.31-preview/pgui_quickstart.html         |   71 -
 builds/2.3.31-preview/pgui_quickstart_all.html     |  168 -
 .../pgui_quickstart_createconfiguration.html       |  128 -
 .../pgui_quickstart_createdatamodel.html           |  193 -
 .../pgui_quickstart_gettemplate.html               |   89 -
 builds/2.3.31-preview/pgui_quickstart_merge.html   |   97 -
 builds/2.3.31-preview/ref.html                     |   71 -
 builds/2.3.31-preview/ref_builtins.html            |   71 -
 builds/2.3.31-preview/ref_builtins_alphaidx.html   |  569 --
 builds/2.3.31-preview/ref_builtins_boolean.html    |  259 -
 builds/2.3.31-preview/ref_builtins_date.html       |  580 --
 builds/2.3.31-preview/ref_builtins_expert.html     | 1463 ---
 builds/2.3.31-preview/ref_builtins_hash.html       |  167 -
 builds/2.3.31-preview/ref_builtins_loop_var.html   |  591 --
 builds/2.3.31-preview/ref_builtins_node.html       |  304 -
 builds/2.3.31-preview/ref_builtins_number.html     |  873 --
 builds/2.3.31-preview/ref_builtins_sequence.html   | 1227 ---
 builds/2.3.31-preview/ref_builtins_string.html     | 2792 ------
 .../ref_builtins_type_independent.html             |  231 -
 builds/2.3.31-preview/ref_depr_builtin.html        |  122 -
 builds/2.3.31-preview/ref_depr_directive.html      |  108 -
 .../ref_depr_numerical_interpolation.html          |  163 -
 builds/2.3.31-preview/ref_depr_oldmacro.html       |  227 -
 builds/2.3.31-preview/ref_depr_oldsyntax.html      |  150 -
 builds/2.3.31-preview/ref_depr_transform.html      |  186 -
 builds/2.3.31-preview/ref_deprecated.html          |   71 -
 builds/2.3.31-preview/ref_directive_alphaidx.html  |  249 -
 builds/2.3.31-preview/ref_directive_assign.html    |  270 -
 builds/2.3.31-preview/ref_directive_attempt.html   |  240 -
 builds/2.3.31-preview/ref_directive_autoesc.html   |  146 -
 builds/2.3.31-preview/ref_directive_compress.html  |  128 -
 builds/2.3.31-preview/ref_directive_escape.html    |  265 -
 builds/2.3.31-preview/ref_directive_flush.html     |  113 -
 builds/2.3.31-preview/ref_directive_ftl.html       |  302 -
 builds/2.3.31-preview/ref_directive_function.html  |  198 -
 builds/2.3.31-preview/ref_directive_global.html    |  153 -
 builds/2.3.31-preview/ref_directive_if.html        |  223 -
 builds/2.3.31-preview/ref_directive_import.html    |  201 -
 builds/2.3.31-preview/ref_directive_include.html   |  595 --
 builds/2.3.31-preview/ref_directive_list.html      |  956 --
 builds/2.3.31-preview/ref_directive_local.html     |  147 -
 builds/2.3.31-preview/ref_directive_macro.html     |  508 --
 builds/2.3.31-preview/ref_directive_noautoesc.html |  144 -
 builds/2.3.31-preview/ref_directive_noparse.html   |  126 -
 builds/2.3.31-preview/ref_directive_nt.html        |   97 -
 .../2.3.31-preview/ref_directive_outputformat.html |  223 -
 builds/2.3.31-preview/ref_directive_setting.html   |  516 --
 builds/2.3.31-preview/ref_directive_stop.html      |  113 -
 builds/2.3.31-preview/ref_directive_switch.html    |  183 -
 builds/2.3.31-preview/ref_directive_t.html         |  170 -
 .../2.3.31-preview/ref_directive_userDefined.html  |  335 -
 builds/2.3.31-preview/ref_directive_visit.html     |  425 -
 builds/2.3.31-preview/ref_directives.html          |   71 -
 builds/2.3.31-preview/ref_reservednames.html       |  113 -
 builds/2.3.31-preview/ref_specvar.html             |  595 --
 builds/2.3.31-preview/toc.html                     |   72 -
 builds/2.3.31-preview/versions_2_0.html            |  164 -
 builds/2.3.31-preview/versions_2_01.html           |   76 -
 builds/2.3.31-preview/versions_2_0RC1.html         |  293 -
 builds/2.3.31-preview/versions_2_0RC2.html         |  236 -
 builds/2.3.31-preview/versions_2_0RC3.html         |  159 -
 builds/2.3.31-preview/versions_2_1.html            |  556 --
 builds/2.3.31-preview/versions_2_1_1.html          |  142 -
 builds/2.3.31-preview/versions_2_1_2.html          |  147 -
 builds/2.3.31-preview/versions_2_1_3.html          |  111 -
 builds/2.3.31-preview/versions_2_1_4.html          |   90 -
 builds/2.3.31-preview/versions_2_1_5.html          |  105 -
 builds/2.3.31-preview/versions_2_2.html            | 1124 ---
 builds/2.3.31-preview/versions_2_2_1.html          |  143 -
 builds/2.3.31-preview/versions_2_2_2.html          |   91 -
 builds/2.3.31-preview/versions_2_2_3.html          |  123 -
 builds/2.3.31-preview/versions_2_2_4.html          |  120 -
 builds/2.3.31-preview/versions_2_2_5.html          |   85 -
 builds/2.3.31-preview/versions_2_2_6.html          |  161 -
 builds/2.3.31-preview/versions_2_2_7.html          |   87 -
 builds/2.3.31-preview/versions_2_2_8.html          |  129 -
 builds/2.3.31-preview/versions_2_3.html            | 1646 ----
 builds/2.3.31-preview/versions_2_3_1.html          |  369 -
 builds/2.3.31-preview/versions_2_3_10.html         |  133 -
 builds/2.3.31-preview/versions_2_3_11.html         |  243 -
 builds/2.3.31-preview/versions_2_3_12.html         |  105 -
 builds/2.3.31-preview/versions_2_3_13.html         |  142 -
 builds/2.3.31-preview/versions_2_3_14.html         |  153 -
 builds/2.3.31-preview/versions_2_3_15.html         |  132 -
 builds/2.3.31-preview/versions_2_3_16.html         |  152 -
 builds/2.3.31-preview/versions_2_3_17.html         |  348 -
 builds/2.3.31-preview/versions_2_3_18.html         |  104 -
 builds/2.3.31-preview/versions_2_3_19.html         |  253 -
 builds/2.3.31-preview/versions_2_3_2.html          |   94 -
 builds/2.3.31-preview/versions_2_3_20.html         |  708 --
 builds/2.3.31-preview/versions_2_3_21.html         | 1436 ---
 builds/2.3.31-preview/versions_2_3_22.html         | 1216 ---
 builds/2.3.31-preview/versions_2_3_23.html         |  440 -
 builds/2.3.31-preview/versions_2_3_24.html         |  931 --
 builds/2.3.31-preview/versions_2_3_25.html         |  245 -
 builds/2.3.31-preview/versions_2_3_26.html         |  358 -
 builds/2.3.31-preview/versions_2_3_27.html         |  393 -
 builds/2.3.31-preview/versions_2_3_28.html         |  404 -
 builds/2.3.31-preview/versions_2_3_29.html         |  273 -
 builds/2.3.31-preview/versions_2_3_3.html          |  240 -
 builds/2.3.31-preview/versions_2_3_30.html         |  239 -
 builds/2.3.31-preview/versions_2_3_31.html         |  211 -
 builds/2.3.31-preview/versions_2_3_4.html          |  138 -
 builds/2.3.31-preview/versions_2_3_5.html          |  179 -
 builds/2.3.31-preview/versions_2_3_6.html          |   85 -
 builds/2.3.31-preview/versions_2_3_7.html          |  189 -
 builds/2.3.31-preview/versions_2_3_7rc1.html       |  146 -
 builds/2.3.31-preview/versions_2_3_8.html          |  115 -
 builds/2.3.31-preview/versions_2_3_9.html          |  136 -
 builds/2.3.31-preview/xgui.html                    |   71 -
 builds/2.3.31-preview/xgui_declarative.html        |   71 -
 builds/2.3.31-preview/xgui_declarative_basics.html |  231 -
 .../2.3.31-preview/xgui_declarative_details.html   |  243 -
 builds/2.3.31-preview/xgui_expose.html             |   71 -
 builds/2.3.31-preview/xgui_expose_dom.html         |  194 -
 builds/2.3.31-preview/xgui_expose_put.html         |  102 -
 builds/2.3.31-preview/xgui_imperative.html         |   71 -
 builds/2.3.31-preview/xgui_imperative_formal.html  |  562 --
 builds/2.3.31-preview/xgui_imperative_learn.html   |  749 --
 builds/2.3.31-preview/xgui_preface.html            |   91 -
 builds/2.3.31-voting/alphaidx.html                 | 1793 ++++
 builds/2.3.31-voting/api/allclasses-frame.html     |  301 +
 builds/2.3.31-voting/api/allclasses-noframe.html   |  301 +
 builds/2.3.31-voting/api/constant-values.html      | 4398 +++++++++
 builds/2.3.31-voting/api/deprecated-list.html      |  789 ++
 .../api/freemarker/cache/AndMatcher.html           |  289 +
 .../freemarker/cache/ByteArrayTemplateLoader.html  |  516 ++
 .../api/freemarker/cache/CacheStorage.html         |  281 +
 .../freemarker/cache/CacheStorageWithGetSize.html  |  248 +
 .../api/freemarker/cache/ClassTemplateLoader.html  |  504 ++
 .../freemarker/cache/ConcurrentCacheStorage.html   |  250 +
 .../ConditionalTemplateConfigurationFactory.html   |  355 +
 .../api/freemarker/cache/FileExtensionMatcher.html |  340 +
 .../api/freemarker/cache/FileNameGlobMatcher.html  |  342 +
 .../api/freemarker/cache/FileTemplateLoader.html   |  682 ++
 .../FirstMatchTemplateConfigurationFactory.html    |  438 +
 .../cache/MergingTemplateConfigurationFactory.html |  340 +
 .../api/freemarker/cache/MruCacheStorage.html      |  486 +
 .../api/freemarker/cache/MultiTemplateLoader.html  |  576 ++
 .../api/freemarker/cache/NotMatcher.html           |  289 +
 .../api/freemarker/cache/NullCacheStorage.html     |  430 +
 .../api/freemarker/cache/OrMatcher.html            |  289 +
 .../api/freemarker/cache/PathGlobMatcher.html      |  356 +
 .../api/freemarker/cache/PathRegexMatcher.html     |  296 +
 .../api/freemarker/cache/SoftCacheStorage.html     |  402 +
 .../freemarker/cache/StatefulTemplateLoader.html   |  246 +
 .../api/freemarker/cache/StringTemplateLoader.html |  571 ++
 .../api/freemarker/cache/StrongCacheStorage.html   |  386 +
 .../cache/TemplateCache.MaybeMissingTemplate.html  |  286 +
 .../api/freemarker/cache/TemplateCache.html        |  899 ++
 .../cache/TemplateConfigurationFactory.html        |  358 +
 .../TemplateConfigurationFactoryException.html     |  280 +
 .../api/freemarker/cache/TemplateLoader.html       |  397 +
 .../freemarker/cache/TemplateLookupContext.html    |  367 +
 .../api/freemarker/cache/TemplateLookupResult.html |  266 +
 .../freemarker/cache/TemplateLookupStrategy.html   |  381 +
 .../api/freemarker/cache/TemplateNameFormat.html   |  319 +
 .../freemarker/cache/TemplateSourceMatcher.html    |  246 +
 .../api/freemarker/cache/URLTemplateLoader.html    |  544 ++
 .../api/freemarker/cache/WebappTemplateLoader.html |  583 ++
 .../api/freemarker/cache/class-use/AndMatcher.html |  125 +
 .../cache/class-use/ByteArrayTemplateLoader.html   |  125 +
 .../freemarker/cache/class-use/CacheStorage.html   |  311 +
 .../cache/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 +
 .../api/freemarker/cache/class-use/NotMatcher.html |  125 +
 .../cache/class-use/NullCacheStorage.html          |  167 +
 .../api/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 +
 .../freemarker/cache/class-use/TemplateCache.html  |  125 +
 .../class-use/TemplateConfigurationFactory.html    |  265 +
 .../TemplateConfigurationFactoryException.html     |  185 +
 .../freemarker/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 +
 .../api/freemarker/cache/package-use.html          |  333 +
 .../core/AliasTemplateDateFormatFactory.html       |  373 +
 .../core/AliasTemplateNumberFormatFactory.html     |  349 +
 .../core/ArithmeticEngine.BigDecimalEngine.html    |  447 +
 .../core/ArithmeticEngine.ConservativeEngine.html  |  478 +
 .../api/freemarker/core/ArithmeticEngine.html      |  582 ++
 .../api/freemarker/core/BugException.html          |  321 +
 .../api/freemarker/core/BuiltInForNodeEx.html      |  595 ++
 .../api/freemarker/core/CSSOutputFormat.html       |  356 +
 ...CallPlaceCustomDataInitializationException.html |  268 +
 .../core/CombinedMarkupOutputFormat.html           |  552 ++
 .../api/freemarker/core/CommandLine.html           |  284 +
 .../freemarker/core/CommonMarkupOutputFormat.html  |  609 ++
 .../core/CommonTemplateMarkupOutputModel.html      |  345 +
 ...nfigurable.SettingValueAssignmentException.html |  248 +
 .../core/Configurable.UnknownSettingException.html |  245 +
 .../api/freemarker/core/Configurable.html          | 5417 +++++++++++
 .../api/freemarker/core/CustomAttribute.html       |  629 ++
 .../core/DefaultTruncateBuiltinAlgorithm.html      |  972 ++
 .../api/freemarker/core/DirectiveCallPlace.html    |  405 +
 .../api/freemarker/core/Environment.Namespace.html |  308 +
 .../api/freemarker/core/Environment.html           | 2357 +++++
 .../api/freemarker/core/FreeMarkerTree.html        |  441 +
 .../api/freemarker/core/HTMLOutputFormat.html      |  485 +
 .../core/InvalidFormatParametersException.html     |  291 +
 .../core/InvalidFormatStringException.html         |  290 +
 .../freemarker/core/InvalidReferenceException.html |  301 +
 .../api/freemarker/core/JSONOutputFormat.html      |  356 +
 .../freemarker/core/JavaScriptOutputFormat.html    |  357 +
 .../api/freemarker/core/MarkupOutputFormat.html    |  577 ++
 .../api/freemarker/core/NonBooleanException.html   |  295 +
 .../api/freemarker/core/NonDateException.html      |  295 +
 .../freemarker/core/NonExtendedHashException.html  |  295 +
 .../freemarker/core/NonExtendedNodeException.html  |  297 +
 .../api/freemarker/core/NonHashException.html      |  297 +
 .../freemarker/core/NonMarkupOutputException.html  |  297 +
 .../api/freemarker/core/NonMethodException.html    |  297 +
 .../api/freemarker/core/NonNodeException.html      |  297 +
 .../api/freemarker/core/NonNumericalException.html |  295 +
 .../api/freemarker/core/NonSequenceException.html  |  297 +
 .../core/NonSequenceOrCollectionException.html     |  332 +
 .../api/freemarker/core/NonStringException.html    |  296 +
 .../core/NonStringOrTemplateOutputException.html   |  296 +
 .../core/OptInTemplateClassResolver.html           |  362 +
 .../api/freemarker/core/OutputFormat.html          |  371 +
 .../api/freemarker/core/ParseException.html        | 3617 ++++++++
 .../api/freemarker/core/ParserConfiguration.html   |  404 +
 .../core/ParsingNotSupportedException.html         |  285 +
 .../api/freemarker/core/PlainTextOutputFormat.html |  360 +
 .../api/freemarker/core/RTFOutputFormat.html       |  485 +
 .../api/freemarker/core/StopException.html         |  305 +
 .../api/freemarker/core/TemplateClassResolver.html |  330 +
 .../core/TemplateCombinedMarkupOutputModel.html    |  284 +
 .../api/freemarker/core/TemplateConfiguration.html | 1025 +++
 .../api/freemarker/core/TemplateDateFormat.html    |  414 +
 .../freemarker/core/TemplateDateFormatFactory.html |  342 +
 .../api/freemarker/core/TemplateFormatUtil.html    |  300 +
 .../freemarker/core/TemplateHTMLOutputModel.html   |  331 +
 .../freemarker/core/TemplateMarkupOutputModel.html |  271 +
 .../api/freemarker/core/TemplateNumberFormat.html  |  382 +
 .../core/TemplateNumberFormatFactory.html          |  318 +
 .../freemarker/core/TemplateRTFOutputModel.html    |  331 +
 .../api/freemarker/core/TemplateValueFormat.html   |  284 +
 .../core/TemplateValueFormatException.html         |  285 +
 .../core/TemplateValueFormatFactory.html           |  247 +
 .../freemarker/core/TemplateXHTMLOutputModel.html  |  336 +
 .../freemarker/core/TemplateXMLOutputModel.html    |  335 +
 .../freemarker/core/TruncateBuiltinAlgorithm.html  |  497 +
 .../core/UndefinedCustomFormatException.html       |  289 +
 .../api/freemarker/core/UndefinedOutputFormat.html |  359 +
 .../freemarker/core/UnexpectedTypeException.html   |  284 +
 .../core/UnformattableValueException.html          |  291 +
 ...nownDateTypeFormattingUnsupportedException.html |  276 +
 ...UnknownDateTypeParsingUnsupportedException.html |  277 +
 .../freemarker/core/UnparsableValueException.html  |  286 +
 .../core/UnregisteredOutputFormatException.html    |  279 +
 .../api/freemarker/core/XHTMLOutputFormat.html     |  490 +
 .../api/freemarker/core/XMLOutputFormat.html       |  489 +
 .../class-use/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 +
 .../freemarker/core/class-use/CSSOutputFormat.html |  169 +
 ...CallPlaceCustomDataInitializationException.html |  171 +
 .../core/class-use/CombinedMarkupOutputFormat.html |  167 +
 .../api/freemarker/core/class-use/CommandLine.html |  125 +
 .../core/class-use/CommonMarkupOutputFormat.html   |  207 +
 .../class-use/CommonTemplateMarkupOutputModel.html |  216 +
 ...nfigurable.SettingValueAssignmentException.html |  125 +
 .../Configurable.UnknownSettingException.html      |  125 +
 .../freemarker/core/class-use/Configurable.html    |  240 +
 .../freemarker/core/class-use/CustomAttribute.html |  125 +
 .../class-use/DefaultTruncateBuiltinAlgorithm.html |  178 +
 .../core/class-use/DirectiveCallPlace.html         |  170 +
 .../core/class-use/Environment.Namespace.html      |  211 +
 .../api/freemarker/core/class-use/Environment.html |  724 ++
 .../freemarker/core/class-use/FreeMarkerTree.html  |  125 +
 .../core/class-use/HTMLOutputFormat.html           |  182 +
 .../InvalidFormatParametersException.html          |  167 +
 .../class-use/InvalidFormatStringException.html    |  174 +
 .../core/class-use/InvalidReferenceException.html  |  125 +
 .../core/class-use/JSONOutputFormat.html           |  169 +
 .../core/class-use/JavaScriptOutputFormat.html     |  169 +
 .../core/class-use/MarkupOutputFormat.html         |  256 +
 .../core/class-use/NonBooleanException.html        |  125 +
 .../core/class-use/NonDateException.html           |  125 +
 .../core/class-use/NonExtendedHashException.html   |  125 +
 .../core/class-use/NonExtendedNodeException.html   |  125 +
 .../core/class-use/NonHashException.html           |  125 +
 .../core/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 +
 .../core/class-use/OptInTemplateClassResolver.html |  125 +
 .../freemarker/core/class-use/OutputFormat.html    |  360 +
 .../freemarker/core/class-use/ParseException.html  |  299 +
 .../core/class-use/ParserConfiguration.html        |  233 +
 .../class-use/ParsingNotSupportedException.html    |  125 +
 .../core/class-use/PlainTextOutputFormat.html      |  167 +
 .../freemarker/core/class-use/RTFOutputFormat.html |  182 +
 .../freemarker/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 +
 .../core/class-use/TemplateDateFormatFactory.html  |  224 +
 .../core/class-use/TemplateFormatUtil.html         |  125 +
 .../core/class-use/TemplateHTMLOutputModel.html    |  185 +
 .../core/class-use/TemplateMarkupOutputModel.html  |  287 +
 .../core/class-use/TemplateNumberFormat.html       |  196 +
 .../class-use/TemplateNumberFormatFactory.html     |  223 +
 .../core/class-use/TemplateRTFOutputModel.html     |  168 +
 .../core/class-use/TemplateValueFormat.html        |  175 +
 .../class-use/TemplateValueFormatException.html    |  359 +
 .../core/class-use/TemplateValueFormatFactory.html |  189 +
 .../core/class-use/TemplateXHTMLOutputModel.html   |  168 +
 .../core/class-use/TemplateXMLOutputModel.html     |  183 +
 .../core/class-use/TruncateBuiltinAlgorithm.html   |  200 +
 .../class-use/UndefinedCustomFormatException.html  |  125 +
 .../core/class-use/UndefinedOutputFormat.html      |  167 +
 .../core/class-use/UnexpectedTypeException.html    |  244 +
 .../class-use/UnformattableValueException.html     |  192 +
 ...nownDateTypeFormattingUnsupportedException.html |  125 +
 ...UnknownDateTypeParsingUnsupportedException.html |  125 +
 .../core/class-use/UnparsableValueException.html   |  125 +
 .../UnregisteredOutputFormatException.html         |  171 +
 .../core/class-use/XHTMLOutputFormat.html          |  182 +
 .../freemarker/core/class-use/XMLOutputFormat.html |  198 +
 .../api/freemarker/core/package-frame.html         |  102 +
 .../api/freemarker/core/package-summary.html       |  647 ++
 .../api/freemarker/core/package-tree.html          |  328 +
 .../api/freemarker/core/package-use.html           |  526 ++
 .../api/freemarker/debug/Breakpoint.html           |  378 +
 .../api/freemarker/debug/DebugModel.html           |  748 ++
 .../api/freemarker/debug/DebuggedEnvironment.html  |  315 +
 .../api/freemarker/debug/Debugger.html             |  459 +
 .../api/freemarker/debug/DebuggerClient.html       |  267 +
 .../api/freemarker/debug/DebuggerListener.html     |  238 +
 .../debug/EnvironmentSuspendedEvent.html           |  366 +
 .../api/freemarker/debug/class-use/Breakpoint.html |  176 +
 .../api/freemarker/debug/class-use/DebugModel.html |  201 +
 .../debug/class-use/DebuggedEnvironment.html       |  184 +
 .../api/freemarker/debug/class-use/Debugger.html   |  173 +
 .../freemarker/debug/class-use/DebuggerClient.html |  125 +
 .../debug/class-use/DebuggerListener.html          |  170 +
 .../debug/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 +
 .../api/freemarker/debug/package-use.html          |  191 +
 .../api/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 ++
 .../api/freemarker/ext/beans/BeansModelCache.html  |  271 +
 .../BeansWrapper.MethodAppearanceDecision.html     |  413 +
 ...BeansWrapper.MethodAppearanceDecisionInput.html |  290 +
 .../api/freemarker/ext/beans/BeansWrapper.html     | 1996 +++++
 .../freemarker/ext/beans/BeansWrapperBuilder.html  |  377 +
 .../ext/beans/BeansWrapperConfiguration.html       |  711 ++
 .../ext/beans/BlacklistMemberAccessPolicy.html     |  333 +
 .../api/freemarker/ext/beans/BooleanModel.html     |  328 +
 .../ext/beans/ClassMemberAccessPolicy.html         |  256 +
 .../api/freemarker/ext/beans/CollectionModel.html  |  431 +
 .../api/freemarker/ext/beans/DateModel.html        |  364 +
 .../ext/beans/DefaultMemberAccessPolicy.html       |  306 +
 .../api/freemarker/ext/beans/EnumerationModel.html |  407 +
 .../api/freemarker/ext/beans/HashAdapter.html      |  385 +
 .../ext/beans/InvalidPropertyException.html        |  289 +
 .../api/freemarker/ext/beans/IteratorModel.html    |  411 +
 .../ext/beans/LegacyDefaultMemberAccessPolicy.html |  325 +
 .../api/freemarker/ext/beans/MapModel.html         |  475 +
 .../freemarker/ext/beans/MemberAccessPolicy.html   |  292 +
 ...ectorListMemberAccessPolicy.MemberSelector.html |  480 +
 .../MemberSelectorListMemberAccessPolicy.html      |  323 +
 .../ext/beans/MethodAppearanceFineTuner.html       |  292 +
 .../api/freemarker/ext/beans/NumberModel.html      |  337 +
 .../ext/beans/OverloadedMethodsModel.html          |  338 +
 .../freemarker/ext/beans/ResourceBundleModel.html  |  483 +
 .../api/freemarker/ext/beans/SimpleMapModel.html   |  558 ++
 .../freemarker/ext/beans/SimpleMethodModel.html    |  387 +
 .../freemarker/ext/beans/SingletonCustomizer.html  |  193 +
 .../api/freemarker/ext/beans/StringModel.html      |  348 +
 .../freemarker/ext/beans/TemplateAccessible.html   |  177 +
 .../ext/beans/WhitelistMemberAccessPolicy.html     |  335 +
 .../freemarker/ext/beans/class-use/ArrayModel.html |  125 +
 .../freemarker/ext/beans/class-use/BeanModel.html  |  233 +
 .../ext/beans/class-use/BeansModelCache.html       |  125 +
 .../BeansWrapper.MethodAppearanceDecision.html     |  186 +
 ...BeansWrapper.MethodAppearanceDecisionInput.html |  172 +
 .../ext/beans/class-use/BeansWrapper.html          |  343 +
 .../ext/beans/class-use/BeansWrapperBuilder.html   |  125 +
 .../beans/class-use/BeansWrapperConfiguration.html |  243 +
 .../class-use/BlacklistMemberAccessPolicy.html     |  125 +
 .../ext/beans/class-use/BooleanModel.html          |  125 +
 .../beans/class-use/ClassMemberAccessPolicy.html   |  182 +
 .../ext/beans/class-use/CollectionModel.html       |  125 +
 .../freemarker/ext/beans/class-use/DateModel.html  |  125 +
 .../beans/class-use/DefaultMemberAccessPolicy.html |  170 +
 .../ext/beans/class-use/EnumerationModel.html      |  125 +
 .../ext/beans/class-use/HashAdapter.html           |  125 +
 .../beans/class-use/InvalidPropertyException.html  |  125 +
 .../ext/beans/class-use/IteratorModel.html         |  125 +
 .../class-use/LegacyDefaultMemberAccessPolicy.html |  168 +
 .../freemarker/ext/beans/class-use/MapModel.html   |  125 +
 .../ext/beans/class-use/MemberAccessPolicy.html    |  236 +
 ...ectorListMemberAccessPolicy.MemberSelector.html |  204 +
 .../MemberSelectorListMemberAccessPolicy.html      |  177 +
 .../beans/class-use/MethodAppearanceFineTuner.html |  196 +
 .../ext/beans/class-use/NumberModel.html           |  125 +
 .../beans/class-use/OverloadedMethodsModel.html    |  125 +
 .../ext/beans/class-use/ResourceBundleModel.html   |  125 +
 .../ext/beans/class-use/SimpleMapModel.html        |  125 +
 .../ext/beans/class-use/SimpleMethodModel.html     |  125 +
 .../ext/beans/class-use/SingletonCustomizer.html   |  125 +
 .../ext/beans/class-use/StringModel.html           |  180 +
 .../ext/beans/class-use/TemplateAccessible.html    |  125 +
 .../class-use/WhitelistMemberAccessPolicy.html     |  125 +
 .../api/freemarker/ext/beans/package-frame.html    |   62 +
 .../api/freemarker/ext/beans/package-summary.html  |  413 +
 .../api/freemarker/ext/beans/package-tree.html     |  216 +
 .../api/freemarker/ext/beans/package-use.html      |  286 +
 .../api/freemarker/ext/dom/NodeModel.html          | 1119 +++
 .../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 +
 .../freemarker/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 +
 .../api/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      |  534 ++
 .../TaglibFactory.ClasspathMetaInfTldSource.html   |  303 +
 .../jsp/TaglibFactory.ClearMetaInfTldSource.html   |  257 +
 .../ext/jsp/TaglibFactory.MetaInfTldSource.html    |  212 +
 ...libFactory.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 +
 .../class-use/TaglibFactory.MetaInfTldSource.html  |  184 +
 ...libFactory.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    |  199 +
 .../api/freemarker/ext/jsp/package-tree.html       |  147 +
 .../api/freemarker/ext/jsp/package-use.html        |  199 +
 .../api/freemarker/ext/jython/JythonHashModel.html |  411 +
 .../api/freemarker/ext/jython/JythonModel.html     |  543 ++
 .../freemarker/ext/jython/JythonNumberModel.html   |  344 +
 .../freemarker/ext/jython/JythonSequenceModel.html |  390 +
 .../ext/jython/JythonVersionAdapter.html           |  314 +
 .../api/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 +
 .../ext/jython/class-use/JythonSequenceModel.html  |  125 +
 .../ext/jython/class-use/JythonVersionAdapter.html |  125 +
 .../ext/jython/class-use/JythonWrapper.html        |  195 +
 .../api/freemarker/ext/jython/package-frame.html   |   26 +
 .../api/freemarker/ext/jython/package-summary.html |  197 +
 .../api/freemarker/ext/jython/package-tree.html    |  146 +
 .../api/freemarker/ext/jython/package-use.html     |  168 +
 .../freemarker/ext/rhino/RhinoFunctionModel.html   |  346 +
 .../freemarker/ext/rhino/RhinoScriptableModel.html |  546 ++
 .../api/freemarker/ext/rhino/RhinoWrapper.html     |  392 +
 .../ext/rhino/class-use/RhinoFunctionModel.html    |  125 +
 .../ext/rhino/class-use/RhinoScriptableModel.html  |  167 +
 .../ext/rhino/class-use/RhinoWrapper.html          |  125 +
 .../api/freemarker/ext/rhino/package-frame.html    |   23 +
 .../api/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 +
 .../freemarker/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    |  349 +
 .../ext/servlet/ServletContextHashModel.html       |  368 +
 .../servlet/class-use/AllHttpScopesHashModel.html  |  125 +
 .../ext/servlet/class-use/FreemarkerServlet.html   |  172 +
 .../servlet/class-use/HttpRequestHashModel.html    |  125 +
 .../class-use/HttpRequestParametersHashModel.html  |  169 +
 .../servlet/class-use/HttpSessionHashModel.html    |  125 +
 .../ext/servlet/class-use/IncludePage.html         |  125 +
 .../servlet/class-use/ServletContextHashModel.html |  125 +
 .../api/freemarker/ext/servlet/package-frame.html  |   27 +
 .../freemarker/ext/servlet/package-summary.html    |  196 +
 .../api/freemarker/ext/servlet/package-tree.html   |  160 +
 .../api/freemarker/ext/servlet/package-use.html    |  169 +
 .../api/freemarker/ext/util/IdentityHashMap.html   |  828 ++
 .../api/freemarker/ext/util/ModelCache.html        |  354 +
 .../api/freemarker/ext/util/ModelFactory.html      |  230 +
 .../freemarker/ext/util/WrapperTemplateModel.html  |  253 +
 .../ext/util/class-use/IdentityHashMap.html        |  125 +
 .../freemarker/ext/util/class-use/ModelCache.html  |  168 +
 .../ext/util/class-use/ModelFactory.html           |  212 +
 .../ext/util/class-use/WrapperTemplateModel.html   |  394 +
 .../api/freemarker/ext/util/package-frame.html     |   27 +
 .../api/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 +
 .../2.3.31-voting/api/freemarker/log/Logger.html   |  934 ++
 .../api/freemarker/log/class-use/Logger.html       |  170 +
 .../api/freemarker/log/package-frame.html          |   21 +
 .../api/freemarker/log/package-summary.html        |  156 +
 .../api/freemarker/log/package-tree.html           |  138 +
 .../api/freemarker/log/package-use.html            |  163 +
 .../freemarker/template/AdapterTemplateModel.html  |  274 +
 .../template/AttemptExceptionReporter.html         |  286 +
 .../api/freemarker/template/Configuration.html     | 6479 +++++++++++++
 .../freemarker/template/DefaultArrayAdapter.html   |  353 +
 .../template/DefaultEnumerationAdapter.html        |  395 +
 .../template/DefaultIterableAdapter.html           |  406 +
 .../template/DefaultIteratorAdapter.html           |  405 +
 .../freemarker/template/DefaultListAdapter.html    |  464 +
 .../api/freemarker/template/DefaultMapAdapter.html |  522 ++
 .../template/DefaultNonListCollectionAdapter.html  |  471 +
 .../freemarker/template/DefaultObjectWrapper.html  |  843 ++
 .../template/DefaultObjectWrapperBuilder.html      |  319 +
 .../DefaultObjectWrapperConfiguration.html         |  498 +
 .../api/freemarker/template/LocalizedString.html   |  349 +
 .../template/MalformedTemplateNameException.html   |  324 +
 .../template/MapKeyValuePairIterator.html          |  316 +
 .../api/freemarker/template/ObjectWrapper.html     |  362 +
 .../template/ObjectWrapperAndUnwrapper.html        |  367 +
 .../template/ResourceBundleLocalizedString.html    |  326 +
 .../api/freemarker/template/SimpleCollection.html  |  426 +
 .../api/freemarker/template/SimpleDate.html        |  407 +
 .../api/freemarker/template/SimpleHash.html        |  775 ++
 .../api/freemarker/template/SimpleList.html        |  319 +
 .../api/freemarker/template/SimpleNumber.html      |  399 +
 .../freemarker/template/SimpleObjectWrapper.html   |  412 +
 .../api/freemarker/template/SimpleScalar.html      |  364 +
 .../api/freemarker/template/SimpleSequence.html    |  674 ++
 .../template/Template.WrongEncodingException.html  | 3143 +++++++
 .../api/freemarker/template/Template.html          | 1499 ++++
 .../freemarker/template/TemplateBooleanModel.html  |  305 +
 .../template/TemplateCollectionModel.html          |  277 +
 .../template/TemplateCollectionModelEx.html        |  292 +
 .../api/freemarker/template/TemplateDateModel.html |  386 +
 .../freemarker/template/TemplateDirectiveBody.html |  246 +
 .../template/TemplateDirectiveModel.html           |  300 +
 .../api/freemarker/template/TemplateException.html |  832 ++
 .../template/TemplateExceptionHandler.html         |  345 +
 .../api/freemarker/template/TemplateHashModel.html |  286 +
 .../freemarker/template/TemplateHashModelEx.html   |  318 +
 .../TemplateHashModelEx2.KeyValuePair.html         |  258 +
 .../TemplateHashModelEx2.KeyValuePairIterator.html |  268 +
 .../freemarker/template/TemplateHashModelEx2.html  |  302 +
 .../freemarker/template/TemplateMethodModel.html   |  283 +
 .../freemarker/template/TemplateMethodModelEx.html |  273 +
 .../api/freemarker/template/TemplateModel.html     |  251 +
 .../freemarker/template/TemplateModelAdapter.html  |  235 +
 .../template/TemplateModelException.html           |  525 ++
 .../freemarker/template/TemplateModelIterator.html |  257 +
 .../template/TemplateModelListSequence.html        |  344 +
 .../template/TemplateModelWithAPISupport.html      |  260 +
 .../api/freemarker/template/TemplateNodeModel.html |  366 +
 .../freemarker/template/TemplateNodeModelEx.html   |  285 +
 .../template/TemplateNotFoundException.html        |  339 +
 .../freemarker/template/TemplateNumberModel.html   |  263 +
 .../freemarker/template/TemplateScalarModel.html   |  293 +
 .../freemarker/template/TemplateSequenceModel.html |  289 +
 .../template/TemplateTransformModel.html           |  283 +
 .../api/freemarker/template/TransformControl.html  |  423 +
 .../api/freemarker/template/Version.html           |  545 ++
 .../freemarker/template/WrappingTemplateModel.html |  407 +
 .../template/class-use/AdapterTemplateModel.html   |  422 +
 .../class-use/AttemptExceptionReporter.html        |  232 +
 .../template/class-use/Configuration.html          |  489 +
 .../template/class-use/DefaultArrayAdapter.html    |  172 +
 .../class-use/DefaultEnumerationAdapter.html       |  172 +
 .../template/class-use/DefaultIterableAdapter.html |  172 +
 .../template/class-use/DefaultIteratorAdapter.html |  172 +
 .../template/class-use/DefaultListAdapter.html     |  172 +
 .../template/class-use/DefaultMapAdapter.html      |  172 +
 .../class-use/DefaultNonListCollectionAdapter.html |  172 +
 .../template/class-use/DefaultObjectWrapper.html   |  187 +
 .../class-use/DefaultObjectWrapperBuilder.html     |  125 +
 .../DefaultObjectWrapperConfiguration.html         |  187 +
 .../template/class-use/LocalizedString.html        |  172 +
 .../class-use/MalformedTemplateNameException.html  |  262 +
 .../class-use/MapKeyValuePairIterator.html         |  125 +
 .../template/class-use/ObjectWrapper.html          |  803 ++
 .../class-use/ObjectWrapperAndUnwrapper.html       |  272 +
 .../class-use/ResourceBundleLocalizedString.html   |  125 +
 .../template/class-use/SimpleCollection.html       |  125 +
 .../freemarker/template/class-use/SimpleDate.html  |  125 +
 .../freemarker/template/class-use/SimpleHash.html  |  222 +
 .../freemarker/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 +
 .../class-use/Template.WrongEncodingException.html |  125 +
 .../freemarker/template/class-use/Template.html    |  537 ++
 .../template/class-use/TemplateBooleanModel.html   |  307 +
 .../class-use/TemplateCollectionModel.html         |  503 ++
 .../class-use/TemplateCollectionModelEx.html       |  172 +
 .../template/class-use/TemplateDateModel.html      |  237 +
 .../template/class-use/TemplateDirectiveBody.html  |  204 +
 .../template/class-use/TemplateDirectiveModel.html |  203 +
 .../template/class-use/TemplateException.html      |  827 ++
 .../class-use/TemplateExceptionHandler.html        |  249 +
 .../template/class-use/TemplateHashModel.html      |  672 ++
 .../template/class-use/TemplateHashModelEx.html    |  477 +
 .../TemplateHashModelEx2.KeyValuePair.html         |  175 +
 .../TemplateHashModelEx2.KeyValuePairIterator.html |  258 +
 .../template/class-use/TemplateHashModelEx2.html   |  284 +
 .../template/class-use/TemplateMethodModel.html    |  359 +
 .../template/class-use/TemplateMethodModelEx.html  |  312 +
 .../template/class-use/TemplateModel.html          | 1841 ++++
 .../template/class-use/TemplateModelAdapter.html   |  168 +
 .../template/class-use/TemplateModelException.html | 1560 ++++
 .../template/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    |  493 +
 .../template/class-use/TemplateSequenceModel.html  |  437 +
 .../template/class-use/TemplateTransformModel.html |  205 +
 .../template/class-use/TransformControl.html       |  125 +
 .../api/freemarker/template/class-use/Version.html |  472 +
 .../template/class-use/WrappingTemplateModel.html  |  323 +
 .../api/freemarker/template/package-frame.html     |   86 +
 .../api/freemarker/template/package-summary.html   |  570 ++
 .../api/freemarker/template/package-tree.html      |  271 +
 .../api/freemarker/template/package-use.html       | 1373 +++
 .../freemarker/template/utility/CaptureOutput.html |  359 +
 .../api/freemarker/template/utility/ClassUtil.html |  571 ++
 .../template/utility/CollectionUtils.html          |  274 +
 .../freemarker/template/utility/Collections12.html |  303 +
 .../api/freemarker/template/utility/Constants.html |  432 +
 .../freemarker/template/utility/DOMNodeModel.html  |  339 +
 .../DateUtil.CalendarFieldsToDateConverter.html    |  252 +
 .../utility/DateUtil.DateParseException.html       |  279 +
 .../DateUtil.DateToISO8601CalendarFactory.html     |  241 +
 ...eUtil.TrivialCalendarFieldsToDateConverter.html |  308 +
 ...teUtil.TrivialDateToISO8601CalendarFactory.html |  296 +
 .../api/freemarker/template/utility/DateUtil.html  |  720 ++
 .../freemarker/template/utility/DeepUnwrap.html    |  358 +
 .../api/freemarker/template/utility/Execute.html   |  336 +
 .../freemarker/template/utility/HtmlEscape.html    |  350 +
 .../freemarker/template/utility/JythonRuntime.html |  343 +
 .../template/utility/NormalizeNewlines.html        |  378 +
 .../template/utility/NullArgumentException.html    |  358 +
 .../freemarker/template/utility/NullWriter.html    |  506 ++
 .../freemarker/template/utility/NumberUtil.html    |  342 +
 .../template/utility/ObjectConstructor.html        |  327 +
 .../freemarker/template/utility/ObjectFactory.html |  232 +
 .../utility/ObjectWrapperWithAPISupport.html       |  281 +
 .../freemarker/template/utility/OptimizerUtil.html |  263 +
 .../template/utility/RichObjectWrapper.html        |  244 +
 .../template/utility/SecurityUtilities.html        |  268 +
 .../template/utility/StandardCompress.html         |  409 +
 .../freemarker/template/utility/StringUtil.html    | 1583 ++++
 .../template/utility/TemplateModelUtils.html       |  335 +
 .../freemarker/template/utility/ToCanonical.html   |  286 +
 .../utility/UndeclaredThrowableException.html      |  321 +
 .../utility/UnrecognizedTimeZoneException.html     |  298 +
 .../utility/UnsupportedNumberClassException.html   |  303 +
 .../template/utility/WriteProtectable.html         |  248 +
 .../api/freemarker/template/utility/XmlEscape.html |  328 +
 .../template/utility/class-use/CaptureOutput.html  |  125 +
 .../template/utility/class-use/ClassUtil.html      |  125 +
 .../utility/class-use/CollectionUtils.html         |  125 +
 .../template/utility/class-use/Collections12.html  |  125 +
 .../template/utility/class-use/Constants.html      |  125 +
 .../template/utility/class-use/DOMNodeModel.html   |  125 +
 .../DateUtil.CalendarFieldsToDateConverter.html    |  226 +
 .../class-use/DateUtil.DateParseException.html     |  217 +
 .../DateUtil.DateToISO8601CalendarFactory.html     |  204 +
 ...eUtil.TrivialCalendarFieldsToDateConverter.html |  125 +
 ...teUtil.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 +
 .../template/utility/class-use/JythonRuntime.html  |  125 +
 .../utility/class-use/NormalizeNewlines.html       |  125 +
 .../utility/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 +
 .../template/utility/class-use/ObjectFactory.html  |  171 +
 .../class-use/ObjectWrapperWithAPISupport.html     |  286 +
 .../template/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 +
 .../utility/class-use/TemplateModelUtils.html      |  125 +
 .../template/utility/class-use/ToCanonical.html    |  125 +
 .../class-use/UndeclaredThrowableException.html    |  125 +
 .../class-use/UnrecognizedTimeZoneException.html   |  169 +
 .../class-use/UnsupportedNumberClassException.html |  125 +
 .../utility/class-use/WriteProtectable.html        |  229 +
 .../template/utility/class-use/XmlEscape.html      |  125 +
 .../freemarker/template/utility/package-frame.html |   61 +
 .../template/utility/package-summary.html          |  378 +
 .../freemarker/template/utility/package-tree.html  |  215 +
 .../freemarker/template/utility/package-use.html   |  325 +
 builds/2.3.31-voting/api/help-doc.html             |  230 +
 builds/2.3.31-voting/api/index-all.html            | 9474 ++++++++++++++++++++
 builds/2.3.31-voting/api/index.html                |   76 +
 builds/2.3.31-voting/api/overview-frame.html       |   37 +
 builds/2.3.31-voting/api/overview-summary.html     |  244 +
 builds/2.3.31-voting/api/overview-tree.html        |  705 ++
 builds/2.3.31-voting/api/package-list              |   16 +
 builds/2.3.31-voting/api/script.js                 |   30 +
 builds/2.3.31-voting/api/serialized-form.html      | 1237 +++
 builds/2.3.31-voting/api/stylesheet.css            |  572 ++
 builds/2.3.31-voting/app.html                      |   71 +
 builds/2.3.31-voting/app_eccn.html                 |   73 +
 builds/2.3.31-voting/app_faq.html                  | 2006 +++++
 builds/2.3.31-voting/app_install.html              |  114 +
 builds/2.3.31-voting/app_legal.html                |   71 +
 builds/2.3.31-voting/app_license.html              |  294 +
 builds/2.3.31-voting/app_versions.html             |   71 +
 builds/2.3.31-voting/detailed-toc.html             |   98 +
 builds/2.3.31-voting/dgui.html                     |   71 +
 builds/2.3.31-voting/dgui_datamodel.html           |   71 +
 builds/2.3.31-voting/dgui_datamodel_basics.html    |  259 +
 builds/2.3.31-voting/dgui_datamodel_types.html     |  547 ++
 builds/2.3.31-voting/dgui_misc.html                |   71 +
 .../2.3.31-voting/dgui_misc_alternativesyntax.html |  269 +
 builds/2.3.31-voting/dgui_misc_autoescaping.html   |  775 ++
 builds/2.3.31-voting/dgui_misc_namespace.html      |  358 +
 builds/2.3.31-voting/dgui_misc_userdefdir.html     |  629 ++
 builds/2.3.31-voting/dgui_misc_var.html            |  229 +
 builds/2.3.31-voting/dgui_misc_whitespace.html     |  327 +
 builds/2.3.31-voting/dgui_quickstart.html          |   74 +
 builds/2.3.31-voting/dgui_quickstart_basics.html   |  162 +
 .../2.3.31-voting/dgui_quickstart_datamodel.html   |  220 +
 builds/2.3.31-voting/dgui_quickstart_template.html |  778 ++
 builds/2.3.31-voting/dgui_template.html            |   77 +
 builds/2.3.31-voting/dgui_template_directives.html |  157 +
 builds/2.3.31-voting/dgui_template_exp.html        | 2641 ++++++
 .../dgui_template_overallstructure.html            |  152 +
 .../dgui_template_valueinsertion.html              |  345 +
 .../docgen-resources/docgen.min.css                |    0
 .../docgen-resources/fonts/NOTICE                  |    0
 .../docgen-resources/fonts/icomoon.eot             |  Bin
 .../docgen-resources/fonts/icomoon.svg             |    0
 .../docgen-resources/fonts/icomoon.ttf             |  Bin
 .../docgen-resources/fonts/icomoon.woff            |  Bin
 .../docgen-resources/img/patterned-bg.png          |  Bin
 .../docgen-resources/img/xxe.png                   |  Bin
 .../docgen-resources/main.min.js                   |    0
 .../eclipse-toc.xml                                |    0
 .../{2.3.31-preview => 2.3.31-voting}/favicon.png  |  Bin
 .../figures/model2sketch.png                       |  Bin
 .../figures/overview.png                           |  Bin
 .../figures/tree.png                               |  Bin
 builds/2.3.31-voting/gloss.html                    |  787 ++
 builds/2.3.31-voting/index.html                    |   90 +
 builds/{2.3.31-preview => 2.3.31-voting}/logo.png  |  Bin
 builds/2.3.31-voting/pgui.html                     |   71 +
 builds/2.3.31-voting/pgui_config.html              |   72 +
 builds/2.3.31-voting/pgui_config_basics.html       |   92 +
 .../2.3.31-voting/pgui_config_custom_formats.html  |  769 ++
 .../2.3.31-voting/pgui_config_errorhandling.html   |  430 +
 .../pgui_config_incompatible_improvements.html     |  216 +
 .../pgui_config_outputformatsautoesc.html          |  241 +
 builds/2.3.31-voting/pgui_config_settings.html     |  405 +
 .../2.3.31-voting/pgui_config_sharedvariables.html |  162 +
 .../pgui_config_templateconfigurations.html        |  352 +
 .../2.3.31-voting/pgui_config_templateloading.html |  389 +
 builds/2.3.31-voting/pgui_datamodel.html           |   72 +
 builds/2.3.31-voting/pgui_datamodel_basics.html    |  122 +
 builds/2.3.31-voting/pgui_datamodel_directive.html |  444 +
 builds/2.3.31-voting/pgui_datamodel_method.html    |  115 +
 builds/2.3.31-voting/pgui_datamodel_node.html      |  140 +
 .../pgui_datamodel_objectWrapper.html              |  447 +
 builds/2.3.31-voting/pgui_datamodel_parent.html    |  146 +
 builds/2.3.31-voting/pgui_datamodel_scalar.html    |  171 +
 builds/2.3.31-voting/pgui_misc.html                |   72 +
 builds/2.3.31-voting/pgui_misc_ant.html            |  130 +
 builds/2.3.31-voting/pgui_misc_beanwrapper.html    |  696 ++
 builds/2.3.31-voting/pgui_misc_charset.html        |  191 +
 builds/2.3.31-voting/pgui_misc_jythonwrapper.html  |  152 +
 builds/2.3.31-voting/pgui_misc_logging.html        |  268 +
 builds/2.3.31-voting/pgui_misc_multithreading.html |   90 +
 builds/2.3.31-voting/pgui_misc_secureenv.html      |  108 +
 builds/2.3.31-voting/pgui_misc_servlet.html        |  730 ++
 builds/2.3.31-voting/pgui_misc_var.html            |  130 +
 builds/2.3.31-voting/pgui_misc_xml_legacy.html     |  530 ++
 builds/2.3.31-voting/pgui_quickstart.html          |   71 +
 builds/2.3.31-voting/pgui_quickstart_all.html      |  168 +
 .../pgui_quickstart_createconfiguration.html       |  128 +
 .../pgui_quickstart_createdatamodel.html           |  193 +
 .../2.3.31-voting/pgui_quickstart_gettemplate.html |   89 +
 builds/2.3.31-voting/pgui_quickstart_merge.html    |   97 +
 builds/2.3.31-voting/ref.html                      |   71 +
 builds/2.3.31-voting/ref_builtins.html             |   71 +
 builds/2.3.31-voting/ref_builtins_alphaidx.html    |  569 ++
 builds/2.3.31-voting/ref_builtins_boolean.html     |  259 +
 builds/2.3.31-voting/ref_builtins_date.html        |  580 ++
 builds/2.3.31-voting/ref_builtins_expert.html      | 1463 +++
 builds/2.3.31-voting/ref_builtins_hash.html        |  167 +
 builds/2.3.31-voting/ref_builtins_loop_var.html    |  591 ++
 builds/2.3.31-voting/ref_builtins_node.html        |  304 +
 builds/2.3.31-voting/ref_builtins_number.html      |  873 ++
 builds/2.3.31-voting/ref_builtins_sequence.html    | 1227 +++
 builds/2.3.31-voting/ref_builtins_string.html      | 2792 ++++++
 .../ref_builtins_type_independent.html             |  231 +
 builds/2.3.31-voting/ref_depr_builtin.html         |  122 +
 builds/2.3.31-voting/ref_depr_directive.html       |  108 +
 .../ref_depr_numerical_interpolation.html          |  163 +
 builds/2.3.31-voting/ref_depr_oldmacro.html        |  227 +
 builds/2.3.31-voting/ref_depr_oldsyntax.html       |  150 +
 builds/2.3.31-voting/ref_depr_transform.html       |  186 +
 builds/2.3.31-voting/ref_deprecated.html           |   71 +
 builds/2.3.31-voting/ref_directive_alphaidx.html   |  249 +
 builds/2.3.31-voting/ref_directive_assign.html     |  270 +
 builds/2.3.31-voting/ref_directive_attempt.html    |  240 +
 builds/2.3.31-voting/ref_directive_autoesc.html    |  146 +
 builds/2.3.31-voting/ref_directive_compress.html   |  128 +
 builds/2.3.31-voting/ref_directive_escape.html     |  265 +
 builds/2.3.31-voting/ref_directive_flush.html      |  113 +
 builds/2.3.31-voting/ref_directive_ftl.html        |  302 +
 builds/2.3.31-voting/ref_directive_function.html   |  198 +
 builds/2.3.31-voting/ref_directive_global.html     |  153 +
 builds/2.3.31-voting/ref_directive_if.html         |  223 +
 builds/2.3.31-voting/ref_directive_import.html     |  201 +
 builds/2.3.31-voting/ref_directive_include.html    |  595 ++
 builds/2.3.31-voting/ref_directive_list.html       |  956 ++
 builds/2.3.31-voting/ref_directive_local.html      |  147 +
 builds/2.3.31-voting/ref_directive_macro.html      |  508 ++
 builds/2.3.31-voting/ref_directive_noautoesc.html  |  144 +
 builds/2.3.31-voting/ref_directive_noparse.html    |  126 +
 builds/2.3.31-voting/ref_directive_nt.html         |   97 +
 .../2.3.31-voting/ref_directive_outputformat.html  |  223 +
 builds/2.3.31-voting/ref_directive_setting.html    |  516 ++
 builds/2.3.31-voting/ref_directive_stop.html       |  113 +
 builds/2.3.31-voting/ref_directive_switch.html     |  183 +
 builds/2.3.31-voting/ref_directive_t.html          |  170 +
 .../2.3.31-voting/ref_directive_userDefined.html   |  335 +
 builds/2.3.31-voting/ref_directive_visit.html      |  425 +
 builds/2.3.31-voting/ref_directives.html           |   71 +
 builds/2.3.31-voting/ref_reservednames.html        |  113 +
 builds/2.3.31-voting/ref_specvar.html              |  595 ++
 .../{2.3.31-preview => 2.3.31-voting}/sitemap.xml  |    0
 builds/2.3.31-voting/toc.html                      |   72 +
 builds/{2.3.31-preview => 2.3.31-voting}/toc.js    |    0
 builds/2.3.31-voting/versions_2_0.html             |  164 +
 builds/2.3.31-voting/versions_2_01.html            |   76 +
 builds/2.3.31-voting/versions_2_0RC1.html          |  293 +
 builds/2.3.31-voting/versions_2_0RC2.html          |  236 +
 builds/2.3.31-voting/versions_2_0RC3.html          |  159 +
 builds/2.3.31-voting/versions_2_1.html             |  556 ++
 builds/2.3.31-voting/versions_2_1_1.html           |  142 +
 builds/2.3.31-voting/versions_2_1_2.html           |  147 +
 builds/2.3.31-voting/versions_2_1_3.html           |  111 +
 builds/2.3.31-voting/versions_2_1_4.html           |   90 +
 builds/2.3.31-voting/versions_2_1_5.html           |  105 +
 builds/2.3.31-voting/versions_2_2.html             | 1124 +++
 builds/2.3.31-voting/versions_2_2_1.html           |  143 +
 builds/2.3.31-voting/versions_2_2_2.html           |   91 +
 builds/2.3.31-voting/versions_2_2_3.html           |  123 +
 builds/2.3.31-voting/versions_2_2_4.html           |  120 +
 builds/2.3.31-voting/versions_2_2_5.html           |   85 +
 builds/2.3.31-voting/versions_2_2_6.html           |  161 +
 builds/2.3.31-voting/versions_2_2_7.html           |   87 +
 builds/2.3.31-voting/versions_2_2_8.html           |  129 +
 builds/2.3.31-voting/versions_2_3.html             | 1646 ++++
 builds/2.3.31-voting/versions_2_3_1.html           |  369 +
 builds/2.3.31-voting/versions_2_3_10.html          |  133 +
 builds/2.3.31-voting/versions_2_3_11.html          |  243 +
 builds/2.3.31-voting/versions_2_3_12.html          |  105 +
 builds/2.3.31-voting/versions_2_3_13.html          |  142 +
 builds/2.3.31-voting/versions_2_3_14.html          |  153 +
 builds/2.3.31-voting/versions_2_3_15.html          |  132 +
 builds/2.3.31-voting/versions_2_3_16.html          |  152 +
 builds/2.3.31-voting/versions_2_3_17.html          |  348 +
 builds/2.3.31-voting/versions_2_3_18.html          |  104 +
 builds/2.3.31-voting/versions_2_3_19.html          |  253 +
 builds/2.3.31-voting/versions_2_3_2.html           |   94 +
 builds/2.3.31-voting/versions_2_3_20.html          |  708 ++
 builds/2.3.31-voting/versions_2_3_21.html          | 1436 +++
 builds/2.3.31-voting/versions_2_3_22.html          | 1216 +++
 builds/2.3.31-voting/versions_2_3_23.html          |  440 +
 builds/2.3.31-voting/versions_2_3_24.html          |  931 ++
 builds/2.3.31-voting/versions_2_3_25.html          |  245 +
 builds/2.3.31-voting/versions_2_3_26.html          |  358 +
 builds/2.3.31-voting/versions_2_3_27.html          |  393 +
 builds/2.3.31-voting/versions_2_3_28.html          |  404 +
 builds/2.3.31-voting/versions_2_3_29.html          |  273 +
 builds/2.3.31-voting/versions_2_3_3.html           |  240 +
 builds/2.3.31-voting/versions_2_3_30.html          |  239 +
 builds/2.3.31-voting/versions_2_3_31.html          |  211 +
 builds/2.3.31-voting/versions_2_3_4.html           |  138 +
 builds/2.3.31-voting/versions_2_3_5.html           |  179 +
 builds/2.3.31-voting/versions_2_3_6.html           |   85 +
 builds/2.3.31-voting/versions_2_3_7.html           |  189 +
 builds/2.3.31-voting/versions_2_3_7rc1.html        |  146 +
 builds/2.3.31-voting/versions_2_3_8.html           |  115 +
 builds/2.3.31-voting/versions_2_3_9.html           |  136 +
 builds/2.3.31-voting/xgui.html                     |   71 +
 builds/2.3.31-voting/xgui_declarative.html         |   71 +
 builds/2.3.31-voting/xgui_declarative_basics.html  |  231 +
 builds/2.3.31-voting/xgui_declarative_details.html |  243 +
 builds/2.3.31-voting/xgui_expose.html              |   71 +
 builds/2.3.31-voting/xgui_expose_dom.html          |  194 +
 builds/2.3.31-voting/xgui_expose_put.html          |  102 +
 builds/2.3.31-voting/xgui_imperative.html          |   71 +
 builds/2.3.31-voting/xgui_imperative_formal.html   |  562 ++
 builds/2.3.31-voting/xgui_imperative_learn.html    |  749 ++
 builds/2.3.31-voting/xgui_preface.html             |   91 +
 1023 files changed, 279116 insertions(+), 59035 deletions(-)

diff --git a/builds/2.3.31-preview/alphaidx.html b/builds/2.3.31-preview/alphaidx.html
deleted file mode 100644
index f9f7f5f..0000000
--- a/builds/2.3.31-preview/alphaidx.html
+++ /dev/null
@@ -1,1793 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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="https://freemarker.apache.org/docs/alphaidx.html">
-<link rel="canonical" href="https://freemarker.apache.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?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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>
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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>&nbsp;| <a href="#idx_x23">#</a>&nbsp;| <a href="#idx_x3C">&lt;</a>&nbsp;| <a href="#idx_A">A</a>&nbsp;| <a href="#idx_B">B</a>&nbsp;| <a href="#idx_C">C</a>&nbsp;| <a href="#idx_D">D</a>&nbsp;| <a href="#idx_E">E</a>&nbsp;| <a href="#idx_F">F</a>&nbsp;| <a href="#idx_G">G</a>&nbsp;| <a href="#idx_H">H</a>&nbsp;| <a href="#idx_I">I</a>&nbsp;| <a href="#idx_J">J</a>&nbsp;| <a href="#idx_K">K</a>&nbsp;| <a href="#idx_L">L</a>&nbsp;| <a href="#idx_M">M</a>&nbsp;| <a  [...]
-
-<div class="indexdiv">
-<a name="idx_x24"></a>
-<h2 class="indexLabel">$</h2>
-<dl>
-    <dt>
-      ${...},&nbsp;&nbsp;<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>
-      #,&nbsp;&nbsp;<a href="dgui_template_overallstructure.html">Overall structure</a>,
-<a href="dgui_template_directives.html">Directives</a>
-    </dt>
-    <dt>
-      #{...},&nbsp;&nbsp;<a href="ref_depr_numerical_interpolation.html">#{...}: Numerical interpolation</a>
-    </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_x3C"></a>
-<h2 class="indexLabel">&lt;</h2>
-<dl>
-    <dt>
-      &lt;#...&gt;,&nbsp;&nbsp;<a href="dgui_template_directives.html">Directives</a>
-    </dt>
-    <dt>
-      &lt;#--...--&gt;,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_abs">abs</a>
-    </dt>
-    <dt>
-      absolute_template_name built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_absolute_template_name">absolute_template_name</a>
-    </dt>
-    <dt>
-      absolute value,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_abs">abs</a>
-    </dt>
-    <dt>
-      acquisition,&nbsp;&nbsp;<a href="ref_directive_include.html#ref_directive_include_acquisition">Using acquisition</a>
-    </dt>
-    <dt>
-      adding hashes,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
-    </dt>
-    <dt>
-      adding sequences,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
-    </dt>
-    <dt>
-      adding strings,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
-    </dt>
-    <dt>
-      addition,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
-    </dt>
-    <dt>
-      alphabetical ordinals,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="dgui_misc_alternativesyntax.html">Alternative (square bracket) syntax</a>
-    </dt>
-    <dt>
-      ancestors built-in,&nbsp;&nbsp;<a href="ref_builtins_node.html#ref_builtin_ancestors">ancestors</a>
-    </dt>
-    <dt>
-      and,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
-    </dt>
-    <dt>
-      ant task,&nbsp;&nbsp;<a href="pgui_misc_ant.html">Using FreeMarker with Ant</a>
-    </dt>
-    <dt>
-      api built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">api, has_api</a>
-    </dt>
-    <dt>
-      args,&nbsp;&nbsp;<a href="ref_specvar.html#specvar.args">Special Variable Reference</a>
-    </dt>
-    <dt>
-      arithmetic,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
-    </dt>
-    <dt>
-      assign directive,&nbsp;&nbsp;<a href="ref_directive_assign.html">assign</a>
-    </dt>
-    <dt>
-      attempt directive,&nbsp;&nbsp;<a href="ref_directive_attempt.html">attempt, recover</a>
-    </dt>
-    <dt>
-      auto_esc,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      auto-escaping,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="pgui_config_incompatible_improvements.html">The &quot;incompatible improvements&quot; setting</a>
-    </dt>
-    <dt>
-      beans    </dt>
-      <dd><dl>
-        <dt>wrapping, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a></dt>
-      </dl></dd>
-    <dt>
-      BeansWrapper,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_setting.html#autoid_121">setting</a>
-    </dt>
-    <dt>
-      boolean built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
-    </dt>
-    <dt>
-      break directive,&nbsp;&nbsp;<a href="ref_directive_list.html#ref_list_break">break directive</a>,
-<a href="ref_directive_switch.html">switch, case, default, break</a>
-    </dt>
-    <dt>
-      built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="pgui_config_templateloading.html#pgui_config_templateloading_caching">Template caching</a>
-    </dt>
-    <dt>
-      call a method,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_methodcall">Method call</a>
-    </dt>
-    <dt>
-      caller_template_name,&nbsp;&nbsp;<a href="ref_specvar.html#ref_specvar_caller_template_name">Special Variable Reference</a>
-    </dt>
-    <dt>
-      cap_first built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_cap_first">cap_first</a>
-    </dt>
-    <dt>
-      capitalize built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_capitalize">capitalize</a>
-    </dt>
-    <dt>
-      case directive,&nbsp;&nbsp;<a href="ref_directive_switch.html">switch, case, default, break</a>
-    </dt>
-    <dt>
-      catch-all parameter,&nbsp;&nbsp;<a href="ref_directive_macro.html#autoid_108">macro, nested, return</a>
-    </dt>
-    <dt>
-      c built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
-    </dt>
-    <dt>
-      charAt,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_get_character">Getting a character</a>
-    </dt>
-    <dt>
-      charset,&nbsp;&nbsp;<a href="pgui_misc_charset.html">Charset issues</a>,
-<a href="ref_directive_ftl.html">ftl</a>
-    </dt>
-    <dt>
-      children built-in,&nbsp;&nbsp;<a href="ref_builtins_node.html#ref_builtin_children">children</a>
-    </dt>
-    <dt>
-      chop_linebreak built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_chop_linebreak">chop_linebreak</a>
-    </dt>
-    <dt>
-      chunk built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
-    </dt>
-    <dt>
-      classic_compatible,&nbsp;&nbsp;<a href="ref_directive_setting.html#autoid_121">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,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
-    </dt>
-    <dt>
-      command-line,&nbsp;&nbsp;<a href="pgui_misc_ant.html">Using FreeMarker with Ant</a>
-    </dt>
-    <dt>
-      comment,&nbsp;&nbsp;<a href="dgui_template_overallstructure.html">Overall structure</a>,
-<a href="dgui_template_exp.html#dgui_template_exp_comment">Comments in expressions</a>
-    </dt>
-    <dt>
-      comparison operators,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_comparison">Comparison</a>
-    </dt>
-    <dt>
-      compress directive,&nbsp;&nbsp;<a href="ref_directive_compress.html">compress</a>
-    </dt>
-    <dt>
-      concatenate hashes,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
-    </dt>
-    <dt>
-      concatenate sequences,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
-    </dt>
-    <dt>
-      concatenate strings,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
-    </dt>
-    <dt>
-      configuration,&nbsp;&nbsp;<a href="pgui_quickstart_createconfiguration.html">Create a configuration instance</a>
-    </dt>
-    <dt>
-      Configuration,&nbsp;&nbsp;<a href="pgui_config.html">The Configuration</a>
-    </dt>
-    <dt>
-      constant,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_contains">contains</a>
-    </dt>
-    <dt>
-      continue directive,&nbsp;&nbsp;<a href="ref_directive_list.html#ref_list_continue">continue directive</a>
-    </dt>
-    <dt>
-      converting between types,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
-    </dt>
-    <dt>
-      converting date to string,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
-    </dt>
-    <dt>
-      converting string to date,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      converting string to number,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_number">number</a>
-    </dt>
-    <dt>
-      converting string to time,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      converting time to string,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_counter">counter</a>
-    </dt>
-    <dt>
-      current_template_name,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      current date-time,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      custom directive,&nbsp;&nbsp;<a href="dgui_misc_userdefdir.html">Defining your own directives</a>
-    </dt>
-    <dt>
-      custom object wrapper,&nbsp;&nbsp;<a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a>
-    </dt>
-    <dt>
-      custom tags,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
-    </dt>
-    <dt>
-      date built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
-    </dt>
-    <dt>
-      datetime built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
-    </dt>
-    <dt>
-      date to string,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_depr_builtin.html">List of deprecated built-ins</a>
-    </dt>
-    <dt>
-      default directive,&nbsp;&nbsp;<a href="ref_directive_switch.html">switch, case, default, break</a>
-    </dt>
-    <dt>
-      DefaultObjectWrapper,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing_default">Default value operator</a>
-    </dt>
-    <dt>
-      defining macro,&nbsp;&nbsp;<a href="dgui_misc_userdefdir.html#autoid_19">Defining your own directives</a>
-    </dt>
-    <dt>
-      deprecated,&nbsp;&nbsp;<a href="ref_deprecated.html">Deprecated FTL constructs</a>
-    </dt>
-    <dt>
-      directive,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
-    </dt>
-    <dt>
-      double built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
-    </dt>
-    <dt>
-      drop_while built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_drop_while">drop_while</a>
-    </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_E"></a>
-<h2 class="indexLabel">E</h2>
-<dl>
-    <dt>
-      else directive,&nbsp;&nbsp;<a href="ref_directive_if.html">if, else, elseif</a>
-    </dt>
-    <dt>
-      else directive inside list,&nbsp;&nbsp;<a href="ref_directive_list.html#ref_list_else">else directive</a>
-    </dt>
-    <dt>
-      elseif directive,&nbsp;&nbsp;<a href="ref_directive_if.html">if, else, elseif</a>
-    </dt>
-    <dt>
-      encoding,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_ends_with">ends_with</a>
-    </dt>
-    <dt>
-      ensure_ends_with built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="pgui_misc_beanwrapper.html#jdk_15_enums">Accessing enums</a>
-    </dt>
-    <dt>
-      error,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      error handling,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_escape.html">escape, noescape (deprecated)</a>
-    </dt>
-    <dt>
-      escape sequences,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_direct_string">Strings</a>
-    </dt>
-    <dt>
-      escaping,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_esc">esc</a>
-    </dt>
-    <dt>
-      eval,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_eval">eval</a>
-    </dt>
-    <dt>
-      eval_json,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_eval_json">eval_json</a>
-    </dt>
-    <dt>
-      evaluate string,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_eval">eval</a>,
-<a href="ref_builtins_expert.html#ref_builtin_eval_json">eval_json</a>
-    </dt>
-    <dt>
-      exception handling,&nbsp;&nbsp;<a href="pgui_config_errorhandling.html">Error handling</a>
-    </dt>
-    <dt>
-      existence test operator,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
-    </dt>
-    <dt>
-      exists built-in,&nbsp;&nbsp;<a href="ref_depr_builtin.html">List of deprecated built-ins</a>
-    </dt>
-    <dt>
-      expression,&nbsp;&nbsp;<a href="dgui_template_exp.html">Expressions</a>
-    </dt>
-    <dt>
-      extended Java decimal format,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_visit.html">visit, recurse, fallback</a>
-    </dt>
-    <dt>
-      FAQ,&nbsp;&nbsp;<a href="app_faq.html">FAQ</a>
-    </dt>
-    <dt>
-      filter built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_filter">filter</a>
-    </dt>
-    <dt>
-      first built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_first">first</a>
-    </dt>
-    <dt>
-      float built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
-    </dt>
-    <dt>
-      floor built-in,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
-    </dt>
-    <dt>
-      flush directive,&nbsp;&nbsp;<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_121">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,&nbsp;&nbsp;<a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
-    </dt>
-    <dt>
-      FTL,&nbsp;&nbsp;<a href="dgui_template_overallstructure.html">Overall structure</a>
-    </dt>
-    <dt>
-      ftl directive,&nbsp;&nbsp;<a href="ref_directive_ftl.html">ftl</a>
-    </dt>
-    <dt>
-      FTL tag,&nbsp;&nbsp;<a href="dgui_template_overallstructure.html">Overall structure</a>,
-<a href="dgui_template_directives.html">Directives</a>
-    </dt>
-    <dt>
-      function directive,&nbsp;&nbsp;<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_optional_template,&nbsp;&nbsp;<a href="ref_specvar.html#ref_specvar_get_optional_template">Using get_optional_template</a>
-    </dt>
-    <dt>
-      get character,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_get_character">Getting a character</a>
-    </dt>
-    <dt>
-      global directive,&nbsp;&nbsp;<a href="ref_directive_global.html">global</a>
-    </dt>
-    <dt>
-      groups built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
-    </dt>
-    <dt>
-      has_api built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">api, has_api</a>
-    </dt>
-    <dt>
-      has_content built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_has_content">has_content</a>
-    </dt>
-    <dt>
-      has_next built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_ftl.html">ftl</a>
-    </dt>
-    <dt>
-      html built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_html">html (deprecated)</a>
-    </dt>
-    <dt>
-      HTML encoding,&nbsp;&nbsp;<a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
-    </dt>
-    <dt>
-      HTML escaping,&nbsp;&nbsp;<a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
-    </dt>
-    <dt>
-      HTTP,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_depr_builtin.html">List of deprecated built-ins</a>
-    </dt>
-    <dt>
-      if directive,&nbsp;&nbsp;<a href="ref_directive_if.html">if, else, elseif</a>
-    </dt>
-    <dt>
-      import directive,&nbsp;&nbsp;<a href="ref_directive_import.html">import</a>
-    </dt>
-    <dt>
-      import optional,&nbsp;&nbsp;<a href="ref_specvar.html#ref_specvar_get_optional_template">Using get_optional_template</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,&nbsp;&nbsp;<a href="ref_directive_include.html">include</a>
-    </dt>
-    <dt>
-      include optional,&nbsp;&nbsp;<a href="ref_specvar.html#ref_specvar_get_optional_template">Using get_optional_template</a>
-    </dt>
-    <dt>
-      incompatible_improvements,&nbsp;&nbsp;<a href="pgui_config_incompatible_improvements.html">The &quot;incompatible improvements&quot; setting</a>
-    </dt>
-    <dt>
-      incompatibleImprovements,&nbsp;&nbsp;<a href="pgui_config_incompatible_improvements.html">The &quot;incompatible improvements&quot; setting</a>
-    </dt>
-    <dt>
-      incompatible improvements,&nbsp;&nbsp;<a href="pgui_config_incompatible_improvements.html">The &quot;incompatible improvements&quot; setting</a>
-    </dt>
-    <dt>
-      incomplatible_improvements,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      index_of built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_index_of">index_of</a>
-    </dt>
-    <dt>
-      index built-in,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_index">index</a>
-    </dt>
-    <dt>
-      infinite,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_is_infinite">is_infinite</a>
-    </dt>
-    <dt>
-      install,&nbsp;&nbsp;<a href="app_install.html">Installing FreeMarker</a>
-    </dt>
-    <dt>
-      instantiating variable,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_new">new</a>
-    </dt>
-    <dt>
-      int built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
-    </dt>
-    <dt>
-      integer division,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
-    </dt>
-    <dt>
-      integer part,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
-    </dt>
-    <dt>
-      interpolation,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_interpret">interpret</a>
-    </dt>
-    <dt>
-      is_... built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_isType">is_...</a>
-    </dt>
-    <dt>
-      is_even_item built-in,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_is_even_item">is_even_item</a>
-    </dt>
-    <dt>
-      is_first built-in,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_is_first">is_first</a>
-    </dt>
-    <dt>
-      is_infinte built-in,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_is_infinite">is_infinite</a>
-    </dt>
-    <dt>
-      is_last built-in,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_is_last">is_last</a>
-    </dt>
-    <dt>
-      is_nan built-in,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_is_nan">is_nan</a>
-    </dt>
-    <dt>
-      is_odd_item built-in,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_is_odd_item">is_odd_item</a>
-    </dt>
-    <dt>
-      is null,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
-    </dt>
-    <dt>
-      iso_... built-ins,&nbsp;&nbsp;<a href="ref_builtins_date.html#ref_builtin_date_iso">iso_...</a>
-    </dt>
-    <dt>
-      ISO 8601,&nbsp;&nbsp;<a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
-    </dt>
-    <dt>
-      ISO 8601 parsing,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      iso built-in,&nbsp;&nbsp;<a href="ref_builtins_date.html#ref_builtin_date_iso">iso_...</a>
-    </dt>
-    <dt>
-      item_cycle built-in,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_item_cycle">item_cycle</a>
-    </dt>
-    <dt>
-      item_parity_cap built-in,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_item_parity_cap">item_parity_cap</a>
-    </dt>
-    <dt>
-      item_parity built-in,&nbsp;&nbsp;<a href="ref_builtins_loop_var.html#ref_builtin_item_parity">item_parity</a>
-    </dt>
-    <dt>
-      items directive,&nbsp;&nbsp;<a href="ref_directive_list.html#ref_list_items">items directive</a>
-    </dt>
-    <dt>
-      iteration state,&nbsp;&nbsp;<a href="ref_directive_list.html#ref_list_accessing_state">Accessing iteration state</a>
-    </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_J"></a>
-<h2 class="indexLabel">J</h2>
-<dl>
-    <dt>
-      j_string built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_j_string">j_string</a>
-    </dt>
-    <dt>
-      JDBC time zone,&nbsp;&nbsp;<a href="ref_directive_setting.html#autoid_121">setting</a>
-    </dt>
-    <dt>
-      join built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_join">join</a>
-    </dt>
-    <dt>
-      joining hashes,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
-    </dt>
-    <dt>
-      joining sequences,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
-    </dt>
-    <dt>
-      joining strings,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
-    </dt>
-    <dt>
-      js_string built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_js_string">js_string</a>
-    </dt>
-    <dt>
-      JSON,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_eval_json">eval_json</a>
-    </dt>
-    <dt>
-      json_string built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_json_string">json_string</a>
-    </dt>
-    <dt>
-      JSP,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_keep_after_last">keep_after_last</a>
-    </dt>
-    <dt>
-      keep_after built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_keep_after">keep_after</a>
-    </dt>
-    <dt>
-      keep_before_last built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_keep_before_last">keep_before_last</a>
-    </dt>
-    <dt>
-      keep_before built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_keep_before">keep_before</a>
-    </dt>
-    <dt>
-      keys built-in,&nbsp;&nbsp;<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>
-      lambda,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_lambda">Local lambdas</a>
-    </dt>
-    <dt>
-      lang,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      language,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      last_index_of built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_last_index_of">last_index_of</a>
-    </dt>
-    <dt>
-      last built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_last">last</a>
-    </dt>
-    <dt>
-      left_pad built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_left_pad">left_pad</a>
-    </dt>
-    <dt>
-      length built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_length">length</a>
-    </dt>
-    <dt>
-      libraries,&nbsp;&nbsp;<a href="dgui_misc_namespace.html">Namespaces</a>
-    </dt>
-    <dt>
-      license,&nbsp;&nbsp;<a href="app_license.html">License</a>
-    </dt>
-    <dt>
-      list directive,&nbsp;&nbsp;<a href="ref_directive_list.html">list, else, items, sep, break, continue</a>
-    </dt>
-    <dt>
-      listing state,&nbsp;&nbsp;<a href="ref_directive_list.html#ref_list_accessing_state">Accessing iteration state</a>
-    </dt>
-    <dt>
-      literal,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="pgui_config_templateloading.html">Template loading</a>
-    </dt>
-    <dt>
-      local directive,&nbsp;&nbsp;<a href="ref_directive_local.html">local</a>
-    </dt>
-    <dt>
-      locale,&nbsp;&nbsp;<a href="ref_directive_setting.html#autoid_121">setting</a>,
-<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      locale_object,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      localization,&nbsp;&nbsp;<a href="ref_directive_include.html#ref_directive_include_localized">Localized lookup</a>
-    </dt>
-    <dt>
-      local variable,&nbsp;&nbsp;<a href="dgui_misc_var.html">Defining variables in the template</a>
-    </dt>
-    <dt>
-      Log4j2,&nbsp;&nbsp;<a href="pgui_misc_logging.html">Logging</a>
-    </dt>
-    <dt>
-      logging,&nbsp;&nbsp;<a href="pgui_misc_logging.html">Logging</a>
-    </dt>
-    <dt>
-      logical operations,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
-    </dt>
-    <dt>
-      long built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
-    </dt>
-    <dt>
-      long to date,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
-    </dt>
-    <dt>
-      loop variable,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_lower_abc">lower_abc</a>
-    </dt>
-    <dt>
-      lower_case built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_lower_case">lower_case</a>
-    </dt>
-    <dt>
-      lt directive,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_macro.html">macro, nested, return</a>
-    </dt>
-    <dt>
-      main_template_name,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      map built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_map">map</a>
-    </dt>
-    <dt>
-      markup_string built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_matches">matches</a>
-    </dt>
-    <dt>
-      math,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
-    </dt>
-    <dt>
-      max built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_min_max">min, max</a>
-    </dt>
-    <dt>
-      merging,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
-    </dt>
-    <dt>
-      min built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_min_max">min, max</a>
-    </dt>
-    <dt>
-      missing value test operator,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
-    </dt>
-    <dt>
-      missing variable,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
-    </dt>
-    <dt>
-      Model 2,&nbsp;&nbsp;<a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
-    </dt>
-    <dt>
-      modify hashes,&nbsp;&nbsp;<a href="app_faq.html#faq_modify_seq_and_map">FAQ</a>
-    </dt>
-    <dt>
-      modify sequences,&nbsp;&nbsp;<a href="app_faq.html#faq_modify_seq_and_map">FAQ</a>
-    </dt>
-    <dt>
-      modulus,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
-    </dt>
-    <dt>
-      multithreading,&nbsp;&nbsp;<a href="pgui_misc_multithreading.html">Multithreading</a>
-    </dt>
-    <dt>
-      Multi-typed value,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_namespace">namespace</a>
-    </dt>
-    <dt>
-      namespaces,&nbsp;&nbsp;<a href="dgui_misc_namespace.html">Namespaces</a>
-    </dt>
-    <dt>
-      NaN,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_is_nan">is_nan</a>
-    </dt>
-    <dt>
-      nested directive,&nbsp;&nbsp;<a href="ref_directive_macro.html">macro, nested, return</a>
-    </dt>
-    <dt>
-      new built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_new">new</a>
-    </dt>
-    <dt>
-      new FTL syntax,&nbsp;&nbsp;<a href="ref_depr_oldsyntax.html">Old FTL syntax</a>
-    </dt>
-    <dt>
-      next_sibling built-in,&nbsp;&nbsp;<a href="ref_builtins_node.html#ref_builtin_next_sibling">next_sibling</a>
-    </dt>
-    <dt>
-      no_esc built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_no_esc">no_esc</a>
-    </dt>
-    <dt>
-      noautoesc directive,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_node.html#ref_builtin_node_name">node_name</a>
-    </dt>
-    <dt>
-      node_namespace built-in,&nbsp;&nbsp;<a href="ref_builtins_node.html#ref_builtin_node_namespace">node_namespace</a>
-    </dt>
-    <dt>
-      node_type built-in,&nbsp;&nbsp;<a href="ref_builtins_node.html#ref_builtin_node_type">node_type</a>
-    </dt>
-    <dt>
-      noescape directive,&nbsp;&nbsp;<a href="ref_directive_escape.html">escape, noescape (deprecated)</a>
-    </dt>
-    <dt>
-      noparse directive,&nbsp;&nbsp;<a href="ref_directive_noparse.html">noparse</a>
-    </dt>
-    <dt>
-      not,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
-    </dt>
-    <dt>
-      now,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      nt directive,&nbsp;&nbsp;<a href="ref_directive_nt.html">nt</a>
-    </dt>
-    <dt>
-      null,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_setting.html#ref.setting.number_format">setting</a>
-    </dt>
-    <dt>
-      number_to_date built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
-    </dt>
-    <dt>
-      number built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_number">number</a>
-    </dt>
-    <dt>
-      numerical range expression,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a>
-    </dt>
-    <dt>
-      numerical sequence,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_depr_oldsyntax.html">Old FTL syntax</a>
-    </dt>
-    <dt>
-      operator precedence,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_precedence">Operator precedence</a>
-    </dt>
-    <dt>
-      or,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_setting.html#autoid_121">setting</a>
-    </dt>
-    <dt>
-      output_format,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      output charset,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_node.html#ref_builtin_parent">parent</a>
-    </dt>
-    <dt>
-      parentheses,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_parentheses">Parentheses</a>
-    </dt>
-    <dt>
-      parse string as boolean,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
-    </dt>
-    <dt>
-      parse string as number,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_number">number</a>
-    </dt>
-    <dt>
-      parsing string as date,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      parsing string as time,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      path,&nbsp;&nbsp;<a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
-    </dt>
-    <dt>
-      positional parameter passing,&nbsp;&nbsp;<a href="ref_directive_userDefined.html#ref_directive_userDefined_positionalParam">Positional parameter passing</a>
-    </dt>
-    <dt>
-      precedence,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_precedence">Operator precedence</a>
-    </dt>
-    <dt>
-      previous_sibling built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a>
-    </dt>
-    <dt>
-      raw string literal,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_direct_string">Strings</a>
-    </dt>
-    <dt>
-      recover directive,&nbsp;&nbsp;<a href="ref_directive_attempt.html">attempt, recover</a>
-    </dt>
-    <dt>
-      recurse directive,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_remove_beginning">remove_beginning</a>
-    </dt>
-    <dt>
-      remove_ending built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_remove_ending">remove_ending</a>
-    </dt>
-    <dt>
-      replace built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_replace">replace</a>
-    </dt>
-    <dt>
-      reserved name,&nbsp;&nbsp;<a href="ref_reservednames.html">Reserved names in FTL</a>
-    </dt>
-    <dt>
-      return directive,&nbsp;&nbsp;<a href="ref_directive_function.html">function, return</a>,
-<a href="ref_directive_macro.html">macro, nested, return</a>
-    </dt>
-    <dt>
-      reverse built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_reverse">reverse</a>
-    </dt>
-    <dt>
-      right_pad built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_right_pad">right_pad</a>
-    </dt>
-    <dt>
-      root built-in,&nbsp;&nbsp;<a href="ref_builtins_node.html#ref_builtin_root">root</a>
-    </dt>
-    <dt>
-      round built-in,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
-    </dt>
-    <dt>
-      rounding,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
-    </dt>
-    <dt>
-      rt directive,&nbsp;&nbsp;<a href="ref_directive_t.html">t, lt, rt</a>
-    </dt>
-    <dt>
-      rtf built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="pgui_misc_var.html">Variables, scopes</a>
-    </dt>
-    <dt>
-      security,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_list.html#ref_list_sep">sep directive</a>
-    </dt>
-    <dt>
-      seq_contains built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_seq_contains">seq_contains</a>
-    </dt>
-    <dt>
-      seq_index_of built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_seq_index_of">seq_index_of</a>
-    </dt>
-    <dt>
-      seq_last_index_of built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_seq_last_index_of">seq_last_index_of</a>
-    </dt>
-    <dt>
-      seq_sequence built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_sequence">sequence</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>drop while, <a href="ref_builtins_sequence.html#ref_builtin_drop_while">drop_while</a></dt>
-        <dt>filter, <a href="ref_builtins_sequence.html#ref_builtin_filter">filter</a>, <a href="ref_builtins_sequence.html#ref_builtin_map">map</a></dt>
-        <dt>iterate, <a href="ref_directive_list.html">list, else, items, sep, break, continue</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>take while, <a href="ref_builtins_sequence.html#ref_builtin_take_while">take_while</a></dt>
-        <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_container">Containers</a></dt>
-      </dl></dd>
-    <dt>
-      sequence slice,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
-    </dt>
-    <dt>
-      setting,&nbsp;&nbsp;<a href="pgui_config_settings.html">Settings</a>
-    </dt>
-    <dt>
-      setting directive,&nbsp;&nbsp;<a href="ref_directive_setting.html">setting</a>
-    </dt>
-    <dt>
-      shared variable,&nbsp;&nbsp;<a href="pgui_config_sharedvariables.html">Shared variables</a>
-    </dt>
-    <dt>
-      short built-in,&nbsp;&nbsp;<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
-    </dt>
-    <dt>
-      size built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_size">size</a>
-    </dt>
-    <dt>
-      SLF4J,&nbsp;&nbsp;<a href="pgui_misc_logging.html">Logging</a>
-    </dt>
-    <dt>
-      sort_by built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_sort_by">sort_by</a>
-    </dt>
-    <dt>
-      sort built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_sort">sort</a>
-    </dt>
-    <dt>
-      special variable,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      special variables,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_var_special">Special variables</a>
-    </dt>
-    <dt>
-      split built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_split">split</a>
-    </dt>
-    <dt>
-      square bracket syntax,&nbsp;&nbsp;<a href="dgui_misc_alternativesyntax.html">Alternative (square bracket) syntax</a>
-    </dt>
-    <dt>
-      starts_with built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_stop.html">stop</a>
-    </dt>
-    <dt>
-      storing templates,&nbsp;&nbsp;<a href="pgui_config_templateloading.html">Template loading</a>
-    </dt>
-    <dt>
-      strict syntax,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a>
-    </dt>
-    <dt>
-      string to boolean,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
-    </dt>
-    <dt>
-      string to date,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      string to number,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_number">number</a>
-    </dt>
-    <dt>
-      string to time,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      Struts,&nbsp;&nbsp;<a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
-    </dt>
-    <dt>
-      subsequence,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">Sequence slicing</a>
-    </dt>
-    <dt>
-      substring,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_substring">substring (deprecated)</a>
-    </dt>
-    <dt>
-      subtraction,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_type_independent.html#ref_builtin_switch">switch</a>
-    </dt>
-    <dt>
-      switch directive,&nbsp;&nbsp;<a href="ref_directive_switch.html">switch, case, default, break</a>
-    </dt>
-    <dt>
-      switch expression,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="pgui_misc_servlet.html#autoid_63">Using FreeMarker with servlets</a>
-    </dt>
-    <dt>
-      take_while built-in,&nbsp;&nbsp;<a href="ref_builtins_sequence.html#ref_builtin_take_while">take_while</a>
-    </dt>
-    <dt>
-      t directive,&nbsp;&nbsp;<a href="ref_directive_t.html">t, lt, rt</a>
-    </dt>
-    <dt>
-      template,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      template caching,&nbsp;&nbsp;<a href="pgui_config_templateloading.html#pgui_config_templateloading_caching">Template caching</a>
-    </dt>
-    <dt>
-      template loaders,&nbsp;&nbsp;<a href="pgui_config_templateloading.html#autoid_38">Template loading</a>
-    </dt>
-    <dt>
-      template loading,&nbsp;&nbsp;<a href="pgui_config_templateloading.html">Template loading</a>
-    </dt>
-    <dt>
-      template name,&nbsp;&nbsp;<a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
-    </dt>
-    <dt>
-      template path,&nbsp;&nbsp;<a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
-    </dt>
-    <dt>
-      temporary variable,&nbsp;&nbsp;<a href="dgui_misc_var.html">Defining variables in the template</a>
-    </dt>
-    <dt>
-      ternary operator,&nbsp;&nbsp;<a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
-    </dt>
-    <dt>
-      testing for missing,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
-    </dt>
-    <dt>
-      testing for null,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
-    </dt>
-    <dt>
-      testing for undefined,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
-    </dt>
-    <dt>
-      text,&nbsp;&nbsp;<a href="dgui_template_overallstructure.html">Overall structure</a>
-    </dt>
-    <dt>
-      then built-in,&nbsp;&nbsp;<a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
-    </dt>
-    <dt>
-      thread-safety,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
-    </dt>
-    <dt>
-      time_zone,&nbsp;&nbsp;<a href="ref_directive_setting.html#autoid_121">setting</a>,
-<a href="ref_directive_setting.html#autoid_121">setting</a>,
-<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      time built-in,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
-    </dt>
-    <dt>
-      time zone,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      transform,&nbsp;&nbsp;<a href="dgui_misc_userdefdir.html">Defining your own directives</a>
-    </dt>
-    <dt>
-      transform directive,&nbsp;&nbsp;<a href="ref_depr_transform.html">Transform directive</a>
-    </dt>
-    <dt>
-      tree nodes,&nbsp;&nbsp;<a href="pgui_datamodel_node.html">Node variables</a>
-    </dt>
-    <dt>
-      trees,&nbsp;&nbsp;<a href="pgui_datamodel_node.html">Node variables</a>
-    </dt>
-    <dt>
-      trim built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_trim">trim</a>
-    </dt>
-    <dt>
-      trimmer directives,&nbsp;&nbsp;<a href="ref_directive_nt.html">nt</a>,
-<a href="ref_directive_t.html">t, lt, rt</a>
-    </dt>
-    <dt>
-      truncate_c_m built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_truncate">truncate, truncate_...</a>
-    </dt>
-    <dt>
-      truncate_c built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_truncate">truncate, truncate_...</a>
-    </dt>
-    <dt>
-      truncate_m built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_truncate">truncate, truncate_...</a>
-    </dt>
-    <dt>
-      truncate_w_m built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_truncate">truncate, truncate_...</a>
-    </dt>
-    <dt>
-      truncate_w built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_truncate">truncate, truncate_...</a>
-    </dt>
-    <dt>
-      truncate built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_truncate">truncate, truncate_...</a>
-    </dt>
-    <dt>
-      type-casting,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_uncap_first">uncap_first</a>
-    </dt>
-    <dt>
-      undefined variable,&nbsp;&nbsp;<a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
-    </dt>
-    <dt>
-      upper_abc built-in,&nbsp;&nbsp;<a href="ref_builtins_number.html#ref_builtin_upper_abc">upper_abc</a>
-    </dt>
-    <dt>
-      upper_case built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_upper_case">upper_case</a>
-    </dt>
-    <dt>
-      url_escaping_charset,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_url">url</a>,
-<a href="ref_directive_setting.html#autoid_121">setting</a>
-    </dt>
-    <dt>
-      url_path built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a>
-    </dt>
-    <dt>
-      url built-in,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_url">url</a>
-    </dt>
-    <dt>
-      URL encoding,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>,
-<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      user-defined directive,&nbsp;&nbsp;<a href="dgui_misc_userdefdir.html">Defining your own directives</a>,
-<a href="ref_directive_userDefined.html">User-defined directive (&lt;@...&gt;)</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,&nbsp;&nbsp;<a href="dgui_datamodel_basics.html#topic.value">What is a value?</a>
-    </dt>
-    <dt>
-      values built-in,&nbsp;&nbsp;<a href="ref_builtins_hash.html#ref_builtin_values">values</a>
-    </dt>
-    <dt>
-      variable,&nbsp;&nbsp;<a href="dgui_misc_var.html">Defining variables in the template</a>
-    </dt>
-    <dt>
-      variable number of parameters,&nbsp;&nbsp;<a href="ref_directive_macro.html#autoid_108">macro, nested, return</a>
-    </dt>
-    <dt>
-      variables,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="pgui_misc_var.html">Variables, scopes</a>
-    </dt>
-    <dt>
-      vars,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      version,&nbsp;&nbsp;<a href="ref_specvar.html">Special Variable Reference</a>
-    </dt>
-    <dt>
-      visit directive,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_depr_builtin.html">List of deprecated built-ins</a>
-    </dt>
-    <dt>
-      Web application framework,&nbsp;&nbsp;<a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
-    </dt>
-    <dt>
-      white-space removal,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_word_list">word_list</a>
-    </dt>
-    <dt>
-      wrapper,&nbsp;&nbsp;<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,&nbsp;&nbsp;<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,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_xml">xml (deprecated)</a>
-    </dt>
-    <dt>
-      XML encoding,&nbsp;&nbsp;<a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
-    </dt>
-    <dt>
-      XML escaping,&nbsp;&nbsp;<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_144">Basics</a></dt>
-      </dl></dd>
-    <dt>
-      XML namespaces    </dt>
-      <dd><dl>
-        <dt>in declarative processing, <a href="xgui_declarative_details.html#autoid_149">Details</a></dt>
-      </dl></dd>
-    <dt>
-      XML Schema date parsing,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      XML Schema date rendering,&nbsp;&nbsp;<a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
-    </dt>
-    <dt>
-      XML Schema dateTime rendering,&nbsp;&nbsp;<a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
-    </dt>
-    <dt>
-      XML Schema time parsing,&nbsp;&nbsp;<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
-    </dt>
-    <dt>
-      XML Schema time rendering,&nbsp;&nbsp;<a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
-    </dt>
-    <dt>
-      XSLT,&nbsp;&nbsp;<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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/app.html b/builds/2.3.31-preview/app.html
deleted file mode 100644
index 56d0868..0000000
--- a/builds/2.3.31-preview/app.html
+++ /dev/null
@@ -1,71 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/app.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/app.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="app.html"><span itemprop="name">Appendixes</span></a></li></ul>  </div>
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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_31.html" data-menu-target="versions_2_3_31">2.3.31</a></li><li><a class="page-menu-link" href="versions_2_3_30.html" data-menu-target="versions_2_3_30">2.3.30</a></li><li><a class="page-menu-link" href="versions_2_3_29.html" data-menu-targe [...]
-    </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/app_eccn.html b/builds/2.3.31-preview/app_eccn.html
deleted file mode 100644
index ce3dfca..0000000
--- a/builds/2.3.31-preview/app_eccn.html
+++ /dev/null
@@ -1,73 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/app_eccn.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/app_eccn.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2"  [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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&#39;t include cryptography.
-        Furthermore its binary (downloadable) forms don&#39;t include any
-        cryptography software. Hence, FreeMarker has no Export Control
-        Classification Number (ECCN). Where an ECCN should be filled, the
-        label &quot;not subject to EAR&quot; could be used.</p><p>FreeMarker itself doesn&#39;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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/app_faq.html b/builds/2.3.31-preview/app_faq.html
deleted file mode 100644
index 7677222..0000000
--- a/builds/2.3.31-preview/app_faq.html
+++ /dev/null
@@ -1,2006 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/app_faq.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/app_faq.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2"  [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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&#39;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&#39;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">&lt;</code> and <code class="inline-code">&gt;</code> of
-            FreeMarker tags confuses my editor or the XML parser. What to
-            do?
-                </a>
-    </li>
-    <li>
-      <a href="#faq_alternative_syntax_interpolation">
-
-            <code class="inline-code">${<em class="code-color">...</em>}</code> and/or
-            <code class="inline-code">#{<em class="code-color">...</em>}</code> is used in
-            the output I have to generate a lot, and FreeMarker tries to
-            resolve them. 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 &quot;java.lang.IllegalArgumentException: argument
-            type mismatch&quot; 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&#39;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&#39;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&#39;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.&nbsp; 
-            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">&lt;%@ taglib prefix=&quot;c&quot;
-                uri=&quot;http://java.sun.com/jsp/jstl/core&quot;
-                %&gt;</code>):</p>
-
-                
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;c:if test=&quot;${t}&quot;&gt;
-  True
-&lt;/c:if&gt;
-
-&lt;c:choose&gt;
-  &lt;c:when test=&quot;${n == 123}&quot;&gt;
-      Do this
-  &lt;/c:when&gt;
-  &lt;c:otherwise&gt;
-      Do that
-  &lt;/c:otherwise&gt;
-&lt;/c:choose&gt;
-
-&lt;c:forEach var=&quot;i&quot; items=&quot;${ls}&quot;&gt;
-- ${i}
-&lt;/c:forEach&gt;</pre>    </div>
-
-
-                <p>and the equivalent FTL:</p>
-
-                
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#if t&gt;
-  True
-&lt;/#if&gt;
-
-&lt;#if n == 123&gt;
-  Do this
-&lt;#else&gt;
-  Do that
-&lt;/#if&gt;
-
-&lt;#list ls as i&gt;
-- ${i}
-&lt;/#list&gt;</pre>    </div>
-
-              </li>
-
-              <li>
-                <p><a href="dgui_misc_autoescaping.html">Auto-escaping
-                option</a> to escape HTML and XML special characters
-                printed with
-                <code class="inline-code">${<em class="code-color">...</em>}</code>. So you
-                can just write <code class="inline-code">${x}</code> instead of
-                <code class="inline-code">&lt;c:out value=&quot;${x}&quot;/&gt;</code>, and most
-                importantly, you can&#39;t accidentally forget to do
-                escaping.</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">&lt;fmt:formatNumber value=&quot;${x}&quot;
-                /&gt;</code>.</p>
-              </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>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&#39;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&#39;t follow the HTML/XML rules apart from
-                some visual similarity, which is confusing for new users (it&#39;s
-                the price of the terseness). JSP doesn&#39;t follow it either, but
-                it&#39;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&#39;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&#39;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.&nbsp; 
-            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&#39;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&#39;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">&lt;#if hasWarnigs&gt;<em class="code-color">print warnings
-                here...</em>&lt;/#if&gt;</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&#39;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&#39;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&#39;t know to
-                be 0/false, it is a quite irresponsible and arbitrary thing.
-                Just because it&#39;s not know what&#39;s your current balance at your
-                bank, can we just say it&#39;s $0? Just because it is not known if
-                a patient has penicillin allergy, can we just say he/she
-                doesn&#39;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&#39;t want FreeMarker to be that picky for good reason, and
-            there is solution for them:</p>
-
-            <ul>
-              <li>
-                <p>It&#39;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&#39;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&#39;t give
-                arbitrary default values to variables, for pages that show
-                critical information it&#39;s maybe still better to show an error
-                page.</p>
-              </li>
-
-              <li>
-                <p>If the pages contain parts that aren&#39;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.&nbsp; 
-            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&#39;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-block role-unspecified">
-<pre class="code-block-body">cfg.setNumberFormat(&quot;0.######&quot;);  // 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
-            &#39;&#39;computer audience&#39;&#39; (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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;a href=&quot;/shop/productdetails?id=${<strong>product.id?c</strong>}&quot;&gt;Details...&lt;/a&gt;</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.&nbsp; 
-            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-block role-unspecified">
-<pre class="code-block-body">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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">font-size: ${<strong>fontSize?c</strong>}pt;</pre>    </div>
-
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_number_boolean_formatting">
-    5.&nbsp; 
-            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><code class="inline-code">${<em class="code-color">...</em>}</code> meant
-            to format values for human consumption, and unlike numbers,
-            booleans has no commonly accepted format
-            (<code class="inline-code">true</code>/<code class="inline-code">false</code> is common in
-            computer languages, but you rarely use it outside that). The
-            proper format depends quite much on the context, therefore,
-            usually the template author should decide the proper format for
-            each case, like <code class="inline-code">${washable?string(&quot;yes&quot;,
-            &quot;no&quot;)}</code>, <code class="inline-code">${caching?string(&quot;Enabled&quot;,
-            &quot;Disabled&quot;)}</code>, <code class="inline-code">${heating?string(&quot;on&quot;,
-            &quot;off&quot;)}</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>. In such case
-                use <code class="inline-code">${<em class="code-color">someBoolean</em><a href="ref_builtins_boolean.html#ref_builtin_c_boolean">?c</a>}</code> (requires
-                FreeMarker 2.3.20). If you never generate for human
-                consumption, only for computer language output, you might want
-                to set <code class="inline-code">boolean_format</code> to
-                <code class="inline-code">c</code> (available since FreeMarker 2.3.29), and
-                then <code class="inline-code">${<em class="code-color">aBoolean</em>}</code>
-                will behave as
-                <code class="inline-code">${<em class="code-color">aBoolean</em>?c}</code>.</p>
-
-                <p>Before 2.3.20, if you really can&#39;t upgrade FreeMarker,
-                try if
-                <code class="inline-code">${<em class="code-color">someBoolean</em>?string}</code>.
-                By default that prints
-                <code class="inline-code">true</code>/<code class="inline-code">false</code>. Then somehow
-                try to ensure that <code class="inline-code">boolean_format</code> won&#39;t be
-                changed later by someone, breaking your output.</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&#39;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.&nbsp; 
-            FreeMarker can&#39;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&#39;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&#39;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&#39;s message
-                contains the description of the
-                <code class="inline-code">TemplateLoader</code> used. If it doesn&#39;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&#39;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&#39;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&#39;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&#39;s
-                going on.</p>
-              </li>
-            </ul>
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_check_version">
-    7.&nbsp; 
-            The documentation writes about feature
-            <em>X</em>, but it seems that FreeMarker doesn&#39;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&#39;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.&nbsp; 
-            The <code class="inline-code">&lt;</code> and <code class="inline-code">&gt;</code> of
-            FreeMarker tags confuses my editor or the XML parser. What to
-            do?
-          
-  </dt>
-
-
-          <dd class="answer">
-
-            <p>You can use <code class="inline-code">[</code> and <code class="inline-code">]</code>
-            instead of <code class="inline-code">&lt;</code> and <code class="inline-code">&gt;</code>;
-            see more about square bracket tag syntax <a href="dgui_misc_alternativesyntax.html">here.</a> The comparison
-            operators, like <code class="inline-code">&lt;</code>, also have an alternative
-            syntax (<code class="inline-code">lt</code> and <code class="inline-code">&amp;lt;</code> in
-            this case); see more about them <a href="dgui_template_exp.html#dgui_template_exp_comparison">here</a>. Also, the
-            <code class="inline-code">&amp;&amp;</code> operator (which is not well-format
-            HTML/XML) can be written as <code class="inline-code">\and</code> or
-            <code class="inline-code">&amp;amp;&amp;amp;</code> since 2.3.27.</p>
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_alternative_syntax_interpolation">
-    9.&nbsp; 
-            <code class="inline-code">${<em class="code-color">...</em>}</code> and/or
-            <code class="inline-code">#{<em class="code-color">...</em>}</code> is used in
-            the output I have to generate a lot, and FreeMarker tries to
-            resolve them. What to do?
-          
-  </dt>
-
-
-          <dd class="answer">
-
-            <p>You can escape them like
-            <code class="inline-code">${&#39;$&#39;}{<em class="code-color">...</em>}</code>, however
-            that&#39;s impractical if you have to do that often. So starting from
-            FreeMarker 2.3.28 you can use
-            <code class="inline-code">[=<em class="code-color">...</em></code><code class="inline-code">]</code>
-            instead; see more about the square bracket interpolation syntax
-            <a href="dgui_misc_alternativesyntax.html">here.</a> If you
-            are going to generate JSP files or even FreeMarker templates, this
-            is very useful.</p>
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_legal_variable_names">
-    10.&nbsp; 
-            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&#39;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">
-    11.&nbsp; 
-            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&#39;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&#39;s say the problematic variable
-            name is "a+b". Then:</p>
-
-            <ul>
-              <li>
-                <p>If you want to read the variable: If it&#39;s a subvariable
-                of something, you can write
-                <code class="inline-code">something[&quot;a+b&quot;]</code> (remember,
-                <code class="inline-code">something.x</code> is equivalent to
-                <code class="inline-code">something[&quot;x&quot;])</code>. If it&#39;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[&quot;a+b&quot;]</code>. Naturally, this trick works
-                with macro and function invocations too:
-                <code class="inline-code">&lt;@.vars[&quot;a+b&quot;]/&gt;</code>,
-                <code class="inline-code">.vars[&quot;a+b&quot;](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">&lt;#assign
-                foo = 1&gt;</code> is the same as <code class="inline-code">&lt;#assign
-                &quot;foo&quot; = 1&gt;</code>. So you can write things like
-                <code class="inline-code">&lt;#assign &quot;a+b&quot; = 1&gt;</code> and
-                <code class="inline-code">&lt;#macro &quot;a+b&quot;&gt;</code>.</p>
-              </li>
-
-              <li>
-                <p>Unfortunately, you can&#39;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">
-    12.&nbsp; 
-            Why do I get &quot;java.lang.IllegalArgumentException: argument
-            type mismatch&quot; 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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;tiles:insert page=&quot;/layout.jsp&quot; <strong>flush=&quot;true&quot;</strong>/&gt;
-<em>...</em></pre>    </div>
-
-
-            <p>but in FTL you should write:</p>
-
-            
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@tiles.insert page=&quot;/layout.ftl&quot; <strong>flush=true</strong>/&gt;
-<em>...</em></pre>    </div>
-
-
-            <p>Also, for similar reasons, this is wrong:</p>
-
-            
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;tiles:insert page=&quot;/layout.jsp&quot; <strong>flush=&quot;${needFlushing}&quot;</strong>/&gt;
-<em>...</em></pre>    </div>
-
-
-            <p>and you should write:</p>
-
-            
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;tiles:insert page=&quot;/layout.jsp&quot; <strong>flush=needFlushing</strong>/&gt;
-<em>...</em></pre>    </div>
-
-
-            <p>(Not <code class="inline-code">flush=${needFlushing}</code>!)</p>
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_servlet_include">
-    13.&nbsp; 
-            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">&lt;#include ...&gt;</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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@s.include value=&quot;/WEB-INF/just-an-example.jspf&quot; /&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@include_page path=&quot;/WEB-INF/just-an-example.jspf&quot; /&gt;</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">
-    14.&nbsp; 
-            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&#39;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">
-    15.&nbsp; 
-            Why I can&#39;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&#39;s <code class="inline-code">Map</code>.
-            FTL&#39;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[&quot;password&quot;]</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">&lt;#list myMap as k, v&gt;${k}:
-            ${v}&lt;/#list&gt;</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&#39;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">&lt;#list myMap?api.entrySet() as kvp&gt;${kvp.key}:
-            ${kvp.value}&lt;/#list&gt;</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&#39;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&#39;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&#39;t modified its
-            value with arithmetical calculations in the template), including
-            the case when it&#39;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">
-    16.&nbsp; 
-            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&#39;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&#39;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">
-    17.&nbsp; 
-            How can I modify sequences (lists) and hashes (maps) in
-            FreeMarker templates?
-
-            
-
-            
-
-            
-
-            
-          
-  </dt>
-
-
-          <dd class="answer">
-
-            <p>First of all, you may don&#39;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&#39;t support the
-            modification of sequences/hashes. It&#39;s for displaying already
-            calculated things, not for calculating data. Keep templates
-            simple. But don&#39;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&#39;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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#assign caculatedResults =
-    &#39;com.example.foo.SmartKeywordIndexHelper&#39;?new().calculate(keywords)&gt;
-&lt;#-- some simple algorithms comes here, like: --&gt;
-&lt;ul&gt;
-  &lt;#list caculatedResults as kw&gt;
-    &lt;li&gt;&lt;a href=&quot;${kw.link}&quot;&gt;${kw.word}&lt;/a&gt;
-  &lt;/#list&gt;
-&lt;/ul&gt;</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&#39;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&#39;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, &quot;eleven&quot;)</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&#39;t suffice, as it&#39;s
-                read only and doesn&#39;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">&lt;#assign myMap =
-                utils.newLinkedHashMap()&gt;</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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#assign a = pp.newWritableSequence()&gt;
-&lt;@pp.add seq=a value=&quot;red&quot; /&gt;</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&#39;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">&lt;@myList.append foo /&gt;</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">&lt;#assign b =
-            pp.newWritableSequence(a[5..10])&gt;</code> and
-            <code class="inline-code">&lt;#assign c = pp.newWritableHash(hashA +
-            hashB)&gt;</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">
-    18.&nbsp; 
-            What about <code class="inline-code">null</code> and the FreeMarker
-            template language? 
-          
-  </dt>
-
-
-          <dd class="answer">
-
-            <p>The FreeMarker template language doesn&#39;t know the Java
-            language <code class="inline-code">null</code> at all. It doesn&#39;t have
-            <code class="inline-code">null</code> keyword, and it can&#39;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&#39;s not present
-            at all, <code class="inline-code">${x!&#39;missing&#39;}</code> will print
-            "missing", you can&#39;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">&lt;#if foo.bar()??&gt;</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&#39;t compare something to
-            <code class="inline-code">null</code> (unlike in Java); it doesn&#39;t make sense to
-            compare something with <code class="inline-code">null</code> in a template,
-            since the template language doesn&#39;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&#39;s
-            <code class="inline-code">Object.equals(Object)</code>; that doesn&#39;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&#39;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">
-    19.&nbsp; 
-            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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#assign capturedOutput&gt;&lt;@outputSomething /&gt;&lt;/#assign&gt;
-&lt;@otherDirective someParam=capturedOutput /&gt;</pre>    </div>
-
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_questionmark">
-    20.&nbsp; 
-            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&#39;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-block role-unspecified">
-<pre class="code-block-body">...
-resp.setContentType(&quot;text/html; charset=utf-8&quot;);
-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&#39;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">
-    21.&nbsp; 
-            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">&lt;#assign x = &quot;foo&quot;&gt;</code>,
-            then you do not actually modify the data-model (since that is
-            read-only, see: <a href="pgui_misc_multithreading.html">Programmer&#39;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&#39;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-block role-unspecified">
-<pre class="code-block-body">// 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-block role-unspecified">
-<pre class="code-block-body">Environment env = myTemplate.createProcessingEnvironment(root, out);
-env.process();  // process the template
-TemplateModel x = env.getVariable(&quot;x&quot;);  // get variable x</pre>    </div>
-
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_assign_to_dynamic_variable_name">
-    22.&nbsp; 
-            How to assign to (or <code class="inline-code">#import</code> into) a
-            dynamically constructed variable name (like to name that&#39;s stored
-            in another variable)?
-          
-  </dt>
-
-
-          <dd class="answer">
-
-            <p>If you really can&#39;t avoid doing that (you should, as it&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@&quot;&lt;#assign ${varName}=&#39;example&#39;&gt;&quot;?interpret /&gt;</pre>    </div>
-
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_template_uploading_security">
-    23.&nbsp; 
-            
-
-            Can I allow users to upload templates and what are the
-            security implications?
-          
-  </dt>
-
-
-          <dd class="answer">
-
-            <p>In general you shouldn&#39;t allow that, unless those users are
-            application developers, system administrators, or other highly
-            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 untrusted users to upload templates, here&#39;s what to
-            consider:</p>
-
-            <ul>
-              <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&#39;t instances of the bunch of specially
-                handled 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, including most methods
-                inherited from standard Java classes
-                (<code class="inline-code">getClass()</code>, etc.). To avoid that, you have
-                to construct the data-model so that it only exposes the
-                members that are really necessary for the template. One
-                possibility is using <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.
-                But for many applications that&#39;s too restrictive, and instead
-                you have to create a
-                <code class="inline-code">WhitelistMemberAccessPolicy</code>, and create a
-                <code class="inline-code">DefaultObjectWrapper</code> (or other
-                <code class="inline-code">BeansWrapper</code> subclass that you would use)
-                that uses that. See the Java API documentation of
-                <code class="inline-code">WhitelistMemberAccessPolicy</code> for more. (Or,
-                you can roll your own <code class="inline-code">MemberAccessPolicy</code>
-                implementation, or even your own restrictive
-                <code class="inline-code">ObjectWrapper</code> implementation of
-                course.)</p>
-
-                <p>Always expect that templates may get some objects that
-                you haven&#39;t put into the data-model yourself. Notably,
-                templates can always get a <code class="inline-code">Locale</code> object
-                with the <code class="inline-code">.locale_object</code> expression. Or the
-                web application framework you are using may exposes some
-                objects, like attributes from the Servlet scopes. Such objects
-                will be still wrapped with the
-                <code class="inline-code">ObjectWrapper</code> that you set in the
-                <code class="inline-code">Configuration</code>, and this is why it&#39;s
-                important to ensure safety on that level. Controlling what
-                objects the template will have access to is hard, but you can
-                control centrally what members of any object they have access
-                to.</p>
-
-                <p>If you are creating <code class="inline-code">TemplateModel</code>-s
-                in custom code (instead of the
-                <code class="inline-code">ObjectWrapper</code> creating those), be sure that
-                you avoid deprecated container constructors like <code class="inline-code">new
-                SimpleSequence()</code>, as those will use the also
-                deprecated default object wrapper instance, which doesn&#39;t have
-                the same restrictions than the
-                <code class="inline-code">ObjectWrapper</code> you have set on the
-                <code class="inline-code">Configuration</code>.</p>
-
-                <p>Also, don&#39;t forget about the <a href="ref_builtins_expert.html#ref_buitin_api_and_has_api"><code>?api</code>
-                built-in</a>, if you have enabled it (it&#39;s disabled by
-                default). While the Java API of <code class="inline-code">Map</code>-s,
-                <code class="inline-code">List</code>-s and similar container-like objects
-                is not directly exposed by most
-                <code class="inline-code">ObjectWrapper</code>-s, so
-                <code class="inline-code">someMap.someJavaMethod()</code> won&#39;t work, using
-                <code class="inline-code">?api</code> the template author can still get to
-                the Java API-s of these objects, like
-                <code class="inline-code">someMap?api.someJavaMethod()</code>. But note that
-                the <code class="inline-code">ObjectWrapper</code> is still in control, as
-                it decides what objects support <code class="inline-code">?api</code>, and
-                what will <code class="inline-code">?api</code> expose for them (it usually
-                exposes the same as for a generic POJO). Members not allowed
-                by the <code class="inline-code">MemberAccessPolicy</code> also won&#39;t be
-                visible with <code class="inline-code">?api</code> (assuming you are using a
-                well behaving <code class="inline-code">ObjectWrapper</code>, like
-                <code class="inline-code">DefaultObjectWrapper</code>.)</p>
-
-                <p>If you are using the default object wrapper class
-                (<code class="inline-code">freemarker.template.DefaultObjectWrapper</code>),
-                or a subclass of it, you should disable the XML (DOM) wrapping
-                feature of it, by setting its
-                <code class="inline-code">DOMNodeSupport</code> property to
-                <code class="inline-code">false</code>. The problem with the XML wrapping
-                feature, which wraps <code class="inline-code">org.w3c.dom.Node</code>
-                objects on special way to make them easier to work with in
-                templates, is that this facility by design lets template
-                authors evaluate arbitrary XPath expressions, and XPath can do
-                too much in certain setups. If you really need the XML
-                wrapping facility, review carefully what XPath expressions are
-                possible in your setup. Also, be sure you don&#39;t use the long
-                deprecated, and more dangerous
-                <code class="inline-code">freemarker.ext.xml</code> package, only
-                <code class="inline-code">freemarker.ext.dom</code>. Also, note that when
-                using the XML wrapping feature, not allowing
-                <code class="inline-code">org.w3c.dom.Node</code> methods in the
-                <code class="inline-code">MemberAccessPolicy</code> has no effect, since it
-                doesn&#39;t expose Java <code class="inline-code">Node</code> members to
-                templates directly.</p>
-
-                <p>Last not least, some maybe aware of the historical
-                legacy that standard object wrappers filter out some well
-                known "unsafe" methods, like
-                <code class="inline-code">System.exit</code>. Do not ever rely on that,
-                since it only blocks the methods from a small predefined list.
-                The standard Java API is huge and ever growing, and then there
-                are the 3rd party libraries, and the API-s of your own
-                application. Clearly it&#39;s impossible to blacklist all the
-                problematic members in those.</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">&lt;#include &quot;../secret.txt&quot;&gt;</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&#39;t consider (like, just as an example,
-                <code class="inline-code">~</code> jumps to the current user&#39;s home
-                directory). Note that
-                <code class="inline-code">freemarker.cache.FileTemplateLoader</code> checks
-                the canonical paths, so that&#39;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&#39;s used in templates like
-                <code class="inline-code">&quot;com.example.SomeClass&quot;?new()</code>, and is
-                important for FTL libraries that are partially implemented in
-                Java, but shouldn&#39;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 &quot;dangerous&quot;
-                <code class="inline-code">TemplateModel</code>-s can exist in you
-                class-path. Plus, even if a class doesn&#39;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 to the absolute minimum (possibly based on
-                which template asks for them), such as
-                <code class="inline-code">TemplateClassResolver.ALLOWS_NOTHING_RESOLVER</code>.
-                Do <em>not</em> use
-                <code class="inline-code">TemplateClassResolver.SAFER_RESOLVER</code>, it&#39;s
-                not restrictive enough for this purpose! Note that if, and
-                only if your <code class="inline-code">ObjectWrapper</code> is a
-                <code class="inline-code">BeansWrapper</code> or a subclass of it (typically
-                <code class="inline-code">DefaultObjectWrapper</code>), constructors not
-                allowed by the <code class="inline-code">MemberAccessPolicy</code> also
-                won&#39;t be accessible for <code class="inline-code">?new</code>.</p>
-              </li>
-
-              <li>
-                <p>Denial-of-Service (DoS) attacks: It&#39;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&#39;t enforce CPU or memory usage limits, so this
-                is something that has no solution on the
-                FreeMarker-level.</p>
-              </li>
-            </ul>
-          </dd>
-
-        
-
-        
-          
-  <dt class="question" id="faq_implement_function_or_macro_in_java">
-    24.&nbsp; 
-            How to implement a function or macro in Java Language
-            instead of in the template language?
-          
-  </dt>
-
-
-          <dd class="answer">
-
-            <p>It&#39;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">&lt;#function
-            my
-            <em class="code-color">...</em>&gt;<em class="code-color">...</em>&lt;/#function&gt;</code>
-            or <code class="inline-code">&lt;#macro my
-            <em class="code-color">...</em>&gt;<em class="code-color">...</em>&lt;/#macro&gt;</code>
-            you write <code class="inline-code">&lt;#assign my = &quot;your.package.YourClass
-            &quot;?</code><a href="ref_builtins_expert.html#ref_builtin_new"><code>new</code></a><code class="inline-code">()&gt;</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">
-    25.&nbsp; 
-            <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&#39;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&#39;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">
-    26.&nbsp; 
-            I&#39;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&#39;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&#39;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">&lt;</code> and <code class="inline-code">&gt;</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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/app_install.html b/builds/2.3.31-preview/app_install.html
deleted file mode 100644
index dea3d18..0000000
--- a/builds/2.3.31-preview/app_install.html
+++ /dev/null
@@ -1,114 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/app_install.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/app_install.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2"  [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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&#39;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&#39;t find Jaxen or
-          Xalan elsewhere. But as Oracle can change these internal packages
-          anytime, it&#39;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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/app_legal.html b/builds/2.3.31-preview/app_legal.html
deleted file mode 100644
index f5abf91..0000000
--- a/builds/2.3.31-preview/app_legal.html
+++ /dev/null
@@ -1,71 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/app_legal.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/app_legal.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2"  [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/app_license.html b/builds/2.3.31-preview/app_license.html
deleted file mode 100644
index 80be806..0000000
--- a/builds/2.3.31-preview/app_license.html
+++ /dev/null
@@ -1,294 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/app_license.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/app_license.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2"  [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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-block role-unspecified">
-<pre class="code-block-body">
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      &quot;Legal Entity&quot; 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,
-      &quot;control&quot; 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.
-
-      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      &quot;Source&quot; form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      &quot;Object&quot; 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.
-
-      &quot;Work&quot; 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).
-
-      &quot;Derivative Works&quot; 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.
-
-      &quot;Contribution&quot; 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, &quot;submitted&quot;
-      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 &quot;Not a Contribution.&quot;
-
-      &quot;Contributor&quot; 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 &quot;NOTICE&quot; 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 &quot;AS IS&quot; 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 &quot;[]&quot;
-      replaced with your own identifying information. (Don&#39;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 &quot;printed page&quot; 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 &quot;License&quot;);
-   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 &quot;AS IS&quot; 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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/app_versions.html b/builds/2.3.31-preview/app_versions.html
deleted file mode 100644
index 51b4237..0000000
--- a/builds/2.3.31-preview/app_versions.html
+++ /dev/null
@@ -1,71 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/app_versions.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/app_versions.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2"  [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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_31.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_31.html" data-menu-target="versions_2_3_31">2.3.31</a></li><li><a class="page-menu-link" href="versions_2_3_30.html" data-menu-target="versions_2_3_30">2.3.30</a></li><li><a class="page-menu-link" href="versions_2_3_29.html" data-menu-target="versions_2_3_29">2.3.29</a></li><li><a class="page-menu-link" href="versions_2_3_28.html" data-menu-target="versions_2_3_28">2.3.28</a></li><li><a class="page-menu-link" href="versions_2_3_27.html [...]
-    </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/detailed-toc.html b/builds/2.3.31-preview/detailed-toc.html
deleted file mode 100644
index f4790f1..0000000
--- a/builds/2.3.31-preview/detailed-toc.html
+++ /dev/null
@@ -1,98 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/toc.html">
-<link rel="canonical" href="https://freemarker.apache.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?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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>
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <div class="content-wrapper">
-  <div id="table-of-contents-wrapper" class="col-left">
-      <script>var breadcrumb = [];</script>
-      <script src="toc.js?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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.31</span>
-</h1>
-</div></div><div class="page-menu">
-<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&#39;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 cla [...]
-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 [...]
-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_mis [...]
-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 ( [...]
-<code class="inline-code">include</code></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, continue</a><ul><li><a class="page-menu-link" href="ref_directive_list.html#autoid_102" data-menu-target="autoid_102">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_list.html#autoid_103" data-menu-target="autoid_103">Description</a><ul><li><a class="page-menu-link" href="r [...]
-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_226" data-menu-target="autoid_226">Non backward-compatible changes!</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_227" data-menu-target="autoid_227">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_228" data-menu-target="autoid_22 [...]
-4</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_232" data-menu-target="autoid_232">Differences between the Release Candidate 4 and Release
-Candidate 3</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_233" data-menu-target="autoid_233">Differences between the Release Candidate 3 and Release
-Candidate 2</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_234" data-menu-target="autoid_234">Differences between the Release Candidate 2 and Release
-Candidate 1</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_235" data-menu-target="autoid_235">Differences between the Release Candidate 1 and Preview 16
-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 16 and Preview 15
-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 15 and Preview 14
-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 14 and Preview 13
-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 13 and Preview 12
-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 12 and Preview 11
-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 11 and Preview 10
-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 10 and Preview 9
-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 9 and Preview 8
-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 8 and Preview 7
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_245" data-menu-target="autoid_245">Differences between the Preview 7 and Preview 6
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_246" data-menu-target="autoid_246">Differences between the Preview 6 and Preview 5
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_247" data-menu-target="autoid_247">Differences between the Preview 5 and Preview 4
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_248" data-menu-target="autoid_248">Differences between the Preview 4 and Preview 3
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_249" data-menu-target="autoid_249">Differences between the Preview 3 and Preview 2
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_250" data-menu-target="autoid_250">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_251" data-menu-target="autoid_251">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_2_8.html#autoid_252" data-menu-target="autoid_252">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_2_8.html#autoid_253" data-menu-target="auto [...]
-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_275" data-menu-target="autoid_275">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_276" data-menu-target="autoid_276">Changes  [...]
-boolean, as well as numerical ranges.</a></li><li><a class="page-menu-link" href="versions_2_0RC1.html#autoid_297" data-menu-target="autoid_297">API Changes</a></li><li><a class="page-menu-link" href="versions_2_0RC1.html#autoid_298" data-menu-target="autoid_298">Syntactical Miscellany</a></li></ul></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- [...]
-    </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui.html b/builds/2.3.31-preview/dgui.html
deleted file mode 100644
index b13050c..0000000
--- a/builds/2.3.31-preview/dgui.html
+++ /dev/null
@@ -1,71 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-part">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Template Author&#39;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&#39;s Guide">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="https://freemarker.apache.org/docs/dgui.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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&#39;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-t [...]
-    </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_datamodel.html b/builds/2.3.31-preview/dgui_datamodel.html
deleted file mode 100644
index 638a006..0000000
--- a/builds/2.3.31-preview/dgui_datamodel.html
+++ /dev/null
@@ -1,71 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_datamodel.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_datamodel.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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</spa [...]
-    </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_datamodel_basics.html b/builds/2.3.31-preview/dgui_datamodel_basics.html
deleted file mode 100644
index 9cc95e9..0000000
--- a/builds/2.3.31-preview/dgui_datamodel_basics.html
+++ /dev/null
@@ -1,259 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_datamodel_basics.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_datamodel_basics.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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&#39;t be a number. For example, take this data-model:</p>
-
-          
-
-    <div class="code-block role-data-model">
-<div class="code-block-label">Data Model</div><pre class="code-block-body"><a name="example.stdDataModel"></a>(root)
- |
- +- user = &quot;Big Joe&quot;
- |
- +- today = Jul 6, 2007
- |
- +- todayHoliday = false
- |
- +- lotteryNumbers
- |   |
- |   +- (1st) = 20
- |   |
- |   +- (2nd) = 14
- |   |
- |   +- (3rd) = 42
- |   |
- |   +- (4th) = 8
- |   |
- |   +- (5th) = 15
- |
- +- cargo
-     |
-     +- name = &quot;coal&quot;
-     |
-     +- weight = 40</pre>    </div>
-
-
-          <p>We say that the <em>value</em> of the the
-          <code class="inline-code">user</code> variable is &quot;Big Joe&quot; (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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#if cargo.weight &lt; <strong>100</strong>&gt;Light cargo&lt;/#if&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">${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">&lt;#list <em class="code-color">...</em>&gt;</code>
-          sequences only. Or, the condition of <code class="inline-code">&lt;#if
-          ...&gt;</code> must be a boolean. And so on.</p>
-
-            <div class="callout note">
-    <strong class="callout-label">Note:</strong>
-
-            <p>A little terminology... Saying &quot;a boolean&quot; or &quot;a boolean
-            value&quot; or &quot;a value of type boolean&quot; are all the same.</p>
-            </div>
-
-
-          <p><a name="topic.multitype"></a>A value can have multiple types at the same time,
-          although it&#39;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-block role-data-model">
-<div class="code-block-label">Data Model</div><pre class="code-block-body">(root)
- |
- +- mouse = &quot;Yerri&quot;
-     |
-     +- age = 12
-     |
-     +- color = &quot;brown&quot;</pre>    </div>
-
-
-          <p>If you merge this template with the above data-model:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">${mouse}       &lt;#-- uses mouse as a string --&gt;
-${mouse.age}   &lt;#-- uses mouse as a hash --&gt;
-${mouse.color} &lt;#-- uses mouse as a hash --&gt;</pre>    </div>
-
-
-          <p>the output will be:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">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 &quot;(root)&quot; is just a value of type hash.
-          When you write something like <code class="inline-code">user</code>, that means
-          that you want the &quot;user&quot; 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 &quot;root&quot; so that wouldn&#39;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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_datamodel_types.html b/builds/2.3.31-preview/dgui_datamodel_types.html
deleted file mode 100644
index dbf0983..0000000
--- a/builds/2.3.31-preview/dgui_datamodel_types.html
+++ /dev/null
@@ -1,547 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_datamodel_types.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_datamodel_types.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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 [...]
-          <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">&quot;green mouse&quot;</code> or <code class="inline-code">&#39;green
-              mouse&#39;</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">&lt;#if
-              loggedIn
-              &gt;<em class="code-color">...</em>&lt;/#if&gt;</code> or
-              <code class="inline-code">&lt;#if price ==
-              0&gt;<em class="code-color">...</em>&lt;/#if&gt;</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 &quot;time stamp&quot;) 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&#39;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">&quot;150&quot;</code> looks like the number
-          <code class="inline-code">150</code>, a string is still just arbitrary sequence of
-          characters, and you can&#39;t do arithmetic with it, can&#39;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&#39;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&#39;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>. Furthermore, very often they can only be
-              listed once. (If you are a Java programmer,
-              "iterable" would be a more fitting name than
-              collection.)</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>
-
-          <p>FreeMarker templates don&#39;t support modifying the contents of
-          containers (such as adding, removing or replacing sub variables),
-          and it assumes that their content won&#39;t change during template
-          processing. (But you can make new container values by adding
-          together two existing container values with <code class="inline-code">+</code>;
-          see that in the <a href="dgui_template_exp.html#exp_cheatsheet">chapter about
-          expressions</a>, and please note the performance
-          consequences.)</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">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-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@<strong>box</strong> title=&quot;Attention!&quot;&gt;
-  Too much copy-pasting may leads to
-  maintenance headaches.
-&lt;/@<strong>box</strong>&gt;</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&#39;t
-            understand). It&#39;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&#39;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&#39;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&#39;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&#39;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&#39;s printed by
-                a directive call
-                (<code class="inline-code">&lt;@<em class="code-color">...</em>&gt;</code>),
-                it won&#39;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
-            &quot;pay-load&quot;. 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">&quot;h1&quot;</code>, it&#39;s node type
-            could be <code class="inline-code">&quot;element&quot;</code>, and it&#39;s namespace could be
-            <code class="inline-code">&quot;http://www.w3.org/1999/xhtml&quot;</code>. But it&#39;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&#39;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&#39;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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_misc.html b/builds/2.3.31-preview/dgui_misc.html
deleted file mode 100644
index fe1522f..0000000
--- a/builds/2.3.31-preview/dgui_misc.html
+++ /dev/null
@@ -1,71 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_misc.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_misc.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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_aut [...]
-    </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_misc_alternativesyntax.html b/builds/2.3.31-preview/dgui_misc_alternativesyntax.html
deleted file mode 100644
index 614f134..0000000
--- a/builds/2.3.31-preview/dgui_misc_alternativesyntax.html
+++ /dev/null
@@ -1,269 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_misc_alternativesyntax.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_misc_alternativesyntax.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#dgui_misc_alternativesyntax_tag" data-menu-target="dgui_misc_alternativesyntax_tag">Square bracket tag syntax</a></li><li><a class="page-menu-link" href="#dgui_misc_alternativesyntax_interpolation" data-menu-target="dgui_misc_alternativesyntax_interpolation">Square bracket interpolation syntax</a></li></ul> </div><p>Sometimes the generated content uses symbols that clashes with
-        the default FreeMarker syntax (typically,
-        <code class="inline-code">${<em class="code-color">...</em>}</code>-s that FreeMarker
-        should print as is, without interpretation), or you use some tool that
-        is confused by the default FreeMarker syntax (typically by
-        <code class="inline-code">&lt;</code> and <code class="inline-code">&gt;</code>). While usually
-        there are tricks to work those cases around (like you can use
-        <code class="inline-code">${&#39;$&#39;}{x}</code> to print <code class="inline-code">${x}</code> as is) ,
-        they are often too inconvenient. Thus, the interpolation syntax can be
-        configured to be like <code class="inline-code">[=x]</code> instead of
-        <code class="inline-code">${x}</code>. Also, independently of that, the FreeMarker
-        tag syntax can be configured to use <code class="inline-code">[]</code>, like in
-        <code class="inline-code">[#if x]<em class="code-color">...</em>[/#if]</code>.</p>  <div class="callout note">
-    <strong class="callout-label">Note:</strong>
-
-          <p>While both the "tag syntax" and
-          "interpolation syntax" can be configured to use square
-          brackets, they are totally independent configuration settings. Thus,
-          the overall syntax can be like <code class="inline-code">[#if x]${y}[/#if]</code>,
-          or like <code class="inline-code">&lt;#if x&gt;[=y]&lt;/#if&gt;</code> as
-          well.</p>
-          </div>
-
-          
-
-
-
-<h2 class="content-header header-section2" id="dgui_misc_alternativesyntax_tag">Square bracket tag syntax</h2>
-
-
-            <div class="callout note">
-    <strong class="callout-label">Note:</strong>
-
-            <p>This section is about the <em>tag</em> syntax,
-            not the <a href="#dgui_misc_alternativesyntax_interpolation"><em>interpolation</em>
-            syntax</a>. Don&#39;t confuse the two, they are independent.</p>
-            </div>
-
-
-            <div class="callout note">
-    <strong class="callout-label">Note:</strong>
-
-            <p>This feature exists since FreeMarker 2.3.4.</p>
-            </div>
-
-
-          <p>FreeMarker supports an alternative tag syntax, where
-          <code class="inline-code">[</code> and <code class="inline-code">]</code> is used instead of
-          <code class="inline-code">&lt;</code> and <code class="inline-code">&gt;</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 square tag syntax instead of the default one, the
-          programmers should configure FreeMarker so <span class="marked-for-programmers">(see
-          <code class="inline-code">Configuraton.setTagSyntax</code>, or the
-          <code class="inline-code">tag_syntax</code> setting)</span>. However, the tag
-          syntax can also be enforced in the template, with the <a href="ref_directive_ftl.html"><code>ftl</code> directive</a>
-          (see later).</p>
-
-          <p>For example, this is how the last example of the <a href="dgui_quickstart_template.html">Getting Started</a> looks with
-          the alternative syntax:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;p&gt;We have these animals:
-&lt;table border=1&gt;
-  &lt;tr&gt;&lt;th&gt;Name&lt;th&gt;Price
-  <strong>[#list animals as animal]</strong>
-  &lt;tr&gt;
-    &lt;td&gt;
-      <strong>[#if animal.size == &quot;large&quot;]</strong>&lt;b&gt;<strong>[/#if]</strong>
-      ${animal.name}
-      <strong>[#if animal.size == &quot;large&quot;]</strong>&lt;/b&gt;<strong>[/#if]</strong>
-    &lt;td&gt;${animal.price} Euros
-  <strong>[/#list]</strong>
-&lt;/table&gt;</pre>    </div>
-
-
-          <p>The square bracket and the default (angle bracket) syntax are
-          mutually exclusive within a template; they can&#39;t be mixed. If the
-          template uses square bracket tag syntax, then things like
-          <code class="inline-code">&lt;#if <em class="code-color">...</em>&gt;</code> will
-          be just static text, not FTL tags. Similarly, if the template uses
-          the angle brackets tag syntax, things like <code class="inline-code">[#if
-          <em class="code-color">...</em>]</code> are static text, not FTL
-          tags.</p>
-
-          <p>If you start the file with <code class="inline-code">[#ftl
-          <em class="code-color">...</em>]</code> (where the
-          <code class="inline-code"><em class="code-color">...</em></code> stands for the
-          optional parameters; of course <code class="inline-code">[#ftl]</code> works too)
-          the file will use square bracket <em>tag</em> syntax
-          regardless of the configuration settings (but that does
-          <em>not</em> change the interpolation syntax to
-          <code class="inline-code">[=...]</code>). Similarly, if you start the file with
-          <code class="inline-code">&lt;#ftl <em class="code-color">...</em>&gt;</code> the
-          file will use the normal (angle bracket) tag syntax. If there is no
-          <code class="inline-code">ftl</code> directive in the file, then the programmer
-          decides what the tag <em>syntax</em> will be by
-          configuring FreeMarker <span class="marked-for-programmers">(programmers
-          see <code class="inline-code">Configuration.setTagSyntax(int)</code> in the API
-          javadocs)</span>. Most probably the programmers use the factory
-          default.</p>
-        
-          
-
-
-
-<h2 class="content-header header-section2" id="dgui_misc_alternativesyntax_interpolation">Square bracket interpolation syntax</h2>
-
-
-            <div class="callout note">
-    <strong class="callout-label">Note:</strong>
-
-            <p>This section is about the <em>interpolation</em>
-            syntax, not the <a href="#dgui_misc_alternativesyntax_tag"><em>tag</em>
-            syntax</a>. Don&#39;t confuse the two, they are independent.</p>
-            </div>
-
-
-            <div class="callout note">
-    <strong class="callout-label">Note:</strong>
-
-            <p>This feature exists since FreeMarker 2.3.28</p>
-            </div>
-
-
-          <p>In this case instead of
-          <code class="inline-code">${<em class="code-color">expression</em>}</code> (and the
-          deprecated
-          <code class="inline-code">#{<em class="code-color">expression</em>}</code>) you
-          write <code class="inline-code">[=<em class="code-color">expression</em>]</code>.
-          This syntax is activated by the programmers from the configuration
-          <span class="marked-for-programmers">(see
-          <code class="inline-code">Configuration.setInterpolationSyntax</code> in the Java
-          API)</span>; unlike the tag syntax, it can&#39;t be specified inside
-          the template. It can be used both together with, and without the
-          <a href="#dgui_misc_alternativesyntax_tag">square bracket
-          <em>tag</em> syntax</a>, as they are technically
-          unrelated, but it&#39;s probably more aesthetic to use square bracket
-          tag syntax when you use square bracket interpolation syntax:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">[#--
-  Note:
-  This example uses both interpolation_syntax=squareBracket and tag_syntax=squareBracket,
-  but you can also use interpolation_syntax=squareBracket and tag_syntax=angleBracket.
---]
-&lt;p&gt;We have these animals:
-&lt;table border=1&gt;
-  &lt;tr&gt;&lt;th&gt;Name&lt;th&gt;Price
-  [#list animals as animal]
-  &lt;tr&gt;
-    &lt;td&gt;
-      [#if animal.size == &quot;large&quot;]&lt;b&gt;[/#if]
-      <strong>[=animal.name]</strong>
-      [#if animal.size == &quot;large&quot;]&lt;/b&gt;[/#if]
-    &lt;td&gt;<strong>[=animal.price]</strong> Euros
-  [/#list]
-&lt;/table&gt;</pre>    </div>
-
-
-          <p>When square bracket interpolation syntax is used,
-          <code class="inline-code">${<em class="code-color">expression</em>}</code> and
-          <code class="inline-code">#{<em class="code-color">expression</em>}</code> in the
-          template will be just static text, which is printed as is. This is
-          mostly useful if you generate output that should contain those
-          (especially
-          <code class="inline-code">${<em class="code-color">expression</em>}</code> is
-          frequent), such as when generating JSP files.</p>
-
-          <p>There&#39;s also a third tag syntax, "dollar", where
-          only the interpolation syntax is
-          <code class="inline-code">${<em class="code-color">expression</em>}</code>, and the
-          deprecated
-          <code class="inline-code">#{<em class="code-color">expression</em>}</code> is just
-          static text. (The one where
-          <code class="inline-code">#{<em class="code-color">expression</em>}</code> is still
-          an interpolation is called the "legacy" interpolation
-          syntax, and is the default for backward compatibility.)</p>
-        <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_misc_whitespace.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui.html"><span>Next</span></a></div></div></div></div>      </div>
-    </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_misc_autoescaping.html b/builds/2.3.31-preview/dgui_misc_autoescaping.html
deleted file mode 100644
index 4846d12..0000000
--- a/builds/2.3.31-preview/dgui_misc_autoescaping.html
+++ /dev/null
@@ -1,775 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_misc_autoescaping.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_misc_autoescaping.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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 esc [...]
-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&#39;t
-          <a href="#dgui_misc_autoescaping_stringliteral">inside a string
-          literal</a>. It also specifies a MIME type (e.g.
-          <code class="inline-code">&quot;text/HTML&quot;</code>) and a canonical name (e.g.
-          <code class="inline-code">&quot;HTML&quot;</code>) that the embedding application/framework
-          can use for its own purposes.</p>
-
-          <p>It&#39;s the programmer&#39;s responsibility to <a href="pgui_config_outputformatsautoesc.html">associate output format
-          to templates</a>. Furthermore it&#39;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">&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> as <code class="inline-code">&amp;lt;</code>,
-                <code class="inline-code">&amp;gt;</code>, <code class="inline-code">&amp;amp;</code>,
-                <code class="inline-code">&amp;quot;</code>,
-                <code class="inline-code">&amp;#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">&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> as <code class="inline-code">&amp;lt;</code>,
-                <code class="inline-code">&amp;gt;</code>, <code class="inline-code">&amp;amp;</code>,
-                <code class="inline-code">&amp;quot;</code>,
-                <code class="inline-code">&amp;#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">&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> as <code class="inline-code">&amp;lt;</code>,
-                <code class="inline-code">&amp;gt;</code>, <code class="inline-code">&amp;amp;</code>,
-                <code class="inline-code">&amp;quot;</code>,
-                <code class="inline-code">&amp;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&#39;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&#39;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&#39;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&#39;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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#ftl output_format=&quot;XML&quot;&gt;
-${&quot;&#39;&quot;}  &lt;#-- Prints: &amp;apos; --&gt;</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&#39;t happen after adding the above
-            <code class="inline-code">ftl</code> header, then <code class="inline-code">&lt;#ftl
-            output_format=&quot;XML&quot; auto_esc=true&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- Let&#39;s assume we have &quot;HTML&quot; output format by default. --&gt;
-${&quot;&#39;&quot;}  &lt;#-- Prints: &amp;#39; --&gt;
-&lt;#outputformat &quot;XML&quot;&gt;
-  ${&quot;&#39;&quot;}  &lt;#-- Prints: &amp;apos; --&gt;
-&lt;/#outputformat&gt;
-${&quot;&#39;&quot;}  &lt;#-- Prints: &amp;#39; --&gt;</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&#39;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&#39;t get the
-          output format of it. Or, if you have a macro that&#39;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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- Let&#39;s assume we have &quot;HTML&quot; output format by default. --&gt;
-${&#39;&lt;b&gt;test&lt;/b&gt;&#39;}  &lt;#-- prints: &amp;lt;b&amp;gt;test&amp;lt;/b&amp;gt; --&gt;
-${&#39;&lt;b&gt;test&lt;/b&gt;&#39;<strong>?no_esc</strong>}  &lt;#-- prints: &lt;b&gt;test&lt;/b&gt; --&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">${&#39;&amp;&#39;}  &lt;#-- prints: &amp;amp; --&gt;
-<strong>&lt;#noautoesc&gt;</strong>
-  ${&#39;&amp;&#39;}  &lt;#-- prints: &amp; --&gt;
-  ...
-  ${&#39;&amp;&#39;}  &lt;#-- prints: &amp; --&gt;
-<strong>&lt;/#noautoesc&gt;</strong>
-${&#39;&amp;&#39;}  &lt;#-- prints: &amp;amp; --&gt;</pre>    </div>
-
-
-          <p>Just like <code class="inline-code">outputformat</code>, this only applies
-          to the part that&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#ftl <strong>autoesc=false</strong>&gt;
-${&#39;&amp;&#39;}  &lt;#-- prints: &amp; --&gt;
-<strong>&lt;#autoesc&gt;</strong>
-  ${&#39;&amp;&#39;}  &lt;#-- prints: &amp;amp; --&gt;
-  ...
-  ${&#39;&amp;&#39;}  &lt;#-- prints: &amp;amp; --&gt;
-<strong>&lt;/#autoesc&gt;</strong>
-${&#39;&amp;&#39;}  &lt;#-- prints: &amp; --&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#ftl <strong>autoesc=false</strong>&gt;
-${&#39;&amp;&#39;}  &lt;#-- prints: &amp; --&gt;
-${&#39;&amp;&#39;<strong>?esc</strong>}  &lt;#-- prints: &amp;amp; --&gt;</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&#39;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&#39;t be escaped):</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- We assume that we have &quot;HTML&quot; output format by default. --&gt;
-
-&lt;@infoBox &quot;Foo &amp; bar&quot; /&gt;
-&lt;@infoBox &quot;Foo &lt;b&gt;bar&lt;/b&gt;&quot;?no_esc /&gt;
-
-&lt;#macro infoBox message&gt;
-  &lt;div class=&quot;infoBox&quot;&gt;
-    ${message}
-  &lt;/div&gt;
-&lt;/#macro&gt;</pre>    </div>
-
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  &lt;div class=&quot;infoBox&quot;&gt;
-    Foo &amp;amp; bar
-  &lt;/div&gt;
-  &lt;div class=&quot;infoBox&quot;&gt;
-    Foo &lt;b&gt;bar&lt;/b&gt;
-  &lt;/div&gt;</pre>    </div>
-
-
-          <p>Another case where you get a markup output value is output
-          capturing:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- We assume that we have &quot;HTML&quot; output format by default. --&gt;
-&lt;#assign captured&gt;&lt;b&gt;Test&lt;/b&gt;&lt;/#assign&gt;
-Just a string: ${&quot;&lt;b&gt;Test&lt;/b&gt;&quot;}
-Captured output: ${captured}</pre>    </div>
-
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">Just a string: &amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;
-Captured output: &lt;b&gt;Test&lt;/b&gt;</pre>    </div>
-
-
-          <p>Because the captured output is markup output, it wasn&#39;t
-          auto-escaped.</p>
-
-          <p>It&#39;s important that markup output values aren&#39;t strings, and
-          aren&#39;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&#39;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&#39;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&#39;s the danger of unintended double
-          escaping.</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- We assume that we have &quot;HTML&quot; output format by default. --&gt;
-
-&lt;#assign markupOutput1=&quot;&lt;b&gt;Test&lt;/b&gt;&quot;?no_esc&gt;
-&lt;#assign markupOutput2=&quot;Foo &amp; bar&quot;?esc&gt;
-
-As expected:
-${markupOutput1}
-${markupOutput2}
-
-Possibly unintended double escaping:
-${markupOutput1?markup_string}
-${markupOutput2?markup_string}</pre>    </div>
-
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">As expected:
-&lt;b&gt;Test&lt;/b&gt;
-Foo &amp;amp; bar
-
-Possibly unintended double escaping:
-&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;
-Foo &amp;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&#39;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">&lt;#assign
-            captured&gt;<em class="code-color">...</em>&lt;/#assign&gt;</code>),
-            but the resulting value will be a string, not a markup output
-            value.</p>
-
-            <p>Furthermore, you aren&#39;t allowed to use the
-            <code class="inline-code">autoesc</code> directive or <code class="inline-code">&lt;#ftl
-            auto_esc=true&gt;</code> when the current output format is
-            non-markup.</p>
-
-            <p>Using constructs that aren&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- We assume that we have &quot;HTML&quot; output format by default. --&gt;
-
-&lt;#assign mo1 = &quot;Foo&#39;s bar {}&quot;?esc&gt;
-HTLM: ${mo1}
-XML:  &lt;#outputformat &#39;XML&#39;&gt;${mo1}&lt;/#outputformat&gt;
-RTF:  &lt;#outputformat &#39;RTF&#39;&gt;${mo1}&lt;/#outputformat&gt;
-
-&lt;#assign mo2&gt;&lt;p&gt;Test&lt;/#assign&gt;
-HTML: ${mo2}
-XML:  &lt;#attempt&gt;&lt;#outputformat &#39;XML&#39;&gt;${mo2}&lt;/#outputformat&gt;&lt;#recover&gt;Failed&lt;/#attempt&gt;
-RTF:  &lt;#attempt&gt;&lt;#outputformat &#39;RTF&#39;&gt;${mo2}&lt;/#outputformat&gt;&lt;#recover&gt;Failed&lt;/#attempt&gt;</pre>    </div>
-
-
-            
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">HTLM: Foo&amp;#39;s bar {}
-XML:  Foo&amp;apos;s bar {}
-RTF:  Foo&#39;s bar \{\}
-
-HTML: &lt;p&gt;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- We assume that we have &quot;undefined&quot; output format here. --&gt;
-
-&lt;#outputformat &quot;HTML&quot;&gt;&lt;#assign htmlMO&gt;&lt;p&gt;Test&lt;/#assign&gt;&lt;/#outputformat&gt;
-&lt;#outputformat &quot;XML&quot;&gt;&lt;#assign xmlMO&gt;&lt;p&gt;Test&lt;/p&gt;&lt;/#assign&gt;&lt;/#outputformat&gt;
-&lt;#outputformat &quot;RTF&quot;&gt;&lt;#assign rtfMO&gt;\par Test&lt;/#assign&gt;&lt;/#outputformat&gt;
-HTML: ${htmlMO}
-XML:  ${xmlMO}
-RTF:  ${rtfMO}</pre>    </div>
-
-
-            
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">HTML: &lt;p&gt;Test
-XML:  &lt;p&gt;Test&lt;/p&gt;
-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&#39;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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- We assume that we have &quot;HTML&quot; output format by default. --&gt;
-${&quot;&lt;h1&gt;&quot;?no_esc + &quot;Foo &amp; bar&quot; + &quot;&lt;/h1&gt;&quot;?no_esc}</pre>    </div>
-
-
-            
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">&lt;h1&gt;Foo &amp;amp; bar&lt;/h1&gt;</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&#39;s not
-            possible, then the left side operand is converted to the output
-            format of the right side. If that isn&#39;t possible either, that&#39;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">&lt;#assign s = &quot;Hello ${name}!&quot;&gt;</code>), it&#39;s
-            just a shorthand of using the <code class="inline-code">+</code> operator
-            (<code class="inline-code">&lt;#assign s = &quot;Hello&quot; + name + &quot;!&quot;&gt;</code>).
-            Thus, <code class="inline-code">${<em class="code-color">...</em>}</code>-s
-            inside string expressions aren&#39;t auto-escaped, but of course when
-            the resulting concatenated string is printed later, it will be
-            possibly auto-escaped.</p>
-
-            
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#-- We assume that we have &quot;HTML&quot; output format by default. --&gt;
-&lt;#assign name = &quot;Foo &amp; Bar&quot;&gt;
-
-&lt;#assign s = &quot;&lt;p&gt;Hello ${name}!&quot;&gt;
-${s}
-&lt;p&gt;Hello ${name}!
-
-To prove that s didn&#39;t contain the value in escaped form:
-${s?replace(&#39;&amp;&#39;), &#39;and&#39;}</pre>    </div>
-
-
-            
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">&amp;lt;p&amp;gt;Hello Foo &amp;amp; Bar!
-&lt;p&gt;Hello Foo &amp;amp; Bar!
-
-To prove that &quot;s&quot; didn&#39;t contain the value in escaped form:
-&amp;lt;p&amp;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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_misc_namespace.html b/builds/2.3.31-preview/dgui_misc_namespace.html
deleted file mode 100644
index 0cc789c..0000000
--- a/builds/2.3.31-preview/dgui_misc_namespace.html
+++ /dev/null
@@ -1,358 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_misc_namespace.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_misc_namespace.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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" [...]
-        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&#39;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&#39;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&#39;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&#39;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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro copyright date&gt;
-  &lt;p&gt;Copyright (C) ${date} Someone. All rights reserved.&lt;/p&gt;
-&lt;/#macro&gt;
-
-&lt;#assign mail = &quot;user@example.com&quot;&gt;</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&#39;s say, <code class="inline-code">some_web_page.ftl</code>, and use
-          the library in it:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#<strong>import</strong> &quot;/lib/example.ftl&quot; as <strong>e</strong>&gt;
-
-Some Web page...
-&lt;@<strong>e</strong>.copyright date=&quot;1999-2002&quot;/&gt;
-${<strong>e</strong>.mail}</pre>    </div>
-
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">Some Web page...
-  &lt;p&gt;Copyright (C) 1999-2002 Someone. All rights reserved.&lt;/p&gt;
-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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro copyright date&gt;
-  &lt;p&gt;Copyright (C) ${date} Someone. All rights reserved.
-  &lt;br&gt;Email: <strong>${mail}</strong>&lt;/p&gt;
-&lt;/#macro&gt;
-
-&lt;#assign mail = &quot;user@example.com&quot;&gt;</pre>    </div>
-
-
-          <p>and <code class="inline-code">some_web_page.ftl</code> with this:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#import &quot;/lib/example.ftl&quot; as e&gt;
-<strong>&lt;#assign mail=&quot;other@example.com&quot;&gt;</strong>
-&lt;@e.copyright date=&quot;1999-2002&quot;/&gt;
-${e.mail}
-${mail}</pre>    </div>
-
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  &lt;p&gt;Copyright (C) 1999-2002 Someone. All rights reserved.
-  &lt;br&gt;Email: <strong>user@example.com</strong>&lt;/p&gt;
-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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#import &quot;/lib/example.ftl&quot; as e&gt;
-${e.mail}
-&lt;#assign mail=&quot;other@example.com&quot; <strong>in e</strong>&gt;
-${e.mail}</pre>    </div>
-
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro copyright date&gt;
-  &lt;p&gt;Copyright (C) ${date} <strong>${user}</strong>. All rights reserved.&lt;/p&gt;
-&lt;/#macro&gt;</pre>    </div>
-
-
-          <p>Assuming <code class="inline-code">user</code> is "John
-          Doe":</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#import &quot;/lib/my_test.ftl&quot; as my&gt;
-User is: ${user}
-&lt;@my.copyright date=&quot;1999-2002&quot;/&gt;</pre>    </div>
-
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">User is: John Doe
-  &lt;p&gt;Copyright (C) 1999-2002 John Doe. All rights reserved.&lt;/p&gt;</pre>    </div>
-
-
-          <p>Don&#39;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&#39;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&#39;t change the
-            data-model, it&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#import &quot;/lib/example.ftl&quot; as e&gt;
-&lt;#import &quot;/lib/example.ftl&quot; as e2&gt;
-&lt;#import &quot;/lib/example.ftl&quot; as e3&gt;
-${e.mail}, ${e2.mail}, ${e3.mail}
-&lt;#assign mail=&quot;other@example.com&quot; in e&gt;
-${e.mail}, ${e2.mail}, ${e3.mail}</pre>    </div>
-
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">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&#39;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="https://freemarker.apache.org/docs/api/freemarker/template/Configuration.html#setAutoImports-java.util.Map-">Configuration.setAutoImports</a>,
-          <a href="https://freemarker.apache.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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_misc_userdefdir.html b/builds/2.3.31-preview/dgui_misc_userdefdir.html
deleted file mode 100644
index 2d57f03..0000000
--- a/builds/2.3.31-preview/dgui_misc_userdefdir.html
+++ /dev/null
@@ -1,629 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_misc_userdefdir.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_misc_userdefdir.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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" da [...]
-        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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body"><strong>&lt;#macro greet&gt;</strong>
-  &lt;font size=&quot;+2&quot;&gt;Hello Joe!&lt;/font&gt;
-<strong>&lt;/#macro&gt;</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">&lt;#macro greet&gt;</code> and
-          <code class="inline-code">&lt;/#macro&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@greet&gt;&lt;/@greet&gt;</pre>    </div>
-
-
-          <p>But since
-          <code class="inline-code">&lt;<em class="code-color">anything</em>&gt;&lt;/<em class="code-color">anything</em>&gt;</code>
-          is equivalent with
-          <code class="inline-code">&lt;<em class="code-color">anything</em>/&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@greet/&gt;</pre>    </div>
-
-
-          <p>This will print:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  &lt;font size=&quot;+2&quot;&gt;Hello Joe!&lt;/font&gt;
-  </pre>    </div>
-
-
-          <p>But macros can do much more, since the thing between
-          <code class="inline-code">&lt;#macro <em class="code-color">...</em>&gt;</code> and
-          <code class="inline-code">&lt;/#macro&gt;</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">&lt;#if
-          <em class="code-color">...</em>&gt;<em class="code-color">...</em>&lt;/#if&gt;</code>).</p>
-
-            <div class="callout note">
-    <strong class="callout-label">Note:</strong>
-
-            <p>Programmers will say on
-            <code class="inline-code">&lt;@<em class="code-color">...</em>&gt;</code> that
-            you <strong>call</strong> the macro.</p>
-            </div>
-
-        
-          
-
-
-
-<h2 class="content-header header-section2" id="autoid_20">Parameters</h2>
-
-
-          <p>Let&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro greet <strong>person</strong>&gt;
-  &lt;font size=&quot;+2&quot;&gt;Hello <strong>${person}</strong>!&lt;/font&gt;
-&lt;/#macro&gt;</pre>    </div>
-
-
-          <p>and then you can use this macro as:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@greet <strong>person=&quot;Fred&quot;</strong>/&gt; and &lt;@greet <strong>person=&quot;Batman&quot;</strong>/&gt;</pre>    </div>
-
-
-          <p>which is similar to HTML syntax. This will print:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  &lt;font size=&quot;+2&quot;&gt;Hello <strong>Fred</strong>!&lt;/font&gt;
- and   &lt;font size=&quot;+2&quot;&gt;Hello <strong>Batman</strong>!&lt;/font&gt;
- </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">&quot;Fred&quot;</code> and <code class="inline-code">&quot;Batman&quot;</code> are not
-          optional. <code class="inline-code">&lt;@greet person=Fred/&gt;</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">&quot;Fred&quot;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro greet person <strong>color</strong>&gt;
-  &lt;font size=&quot;+2&quot; color=&quot;${color}&quot;&gt;Hello ${person}!&lt;/font&gt;
-&lt;/#macro&gt;</pre>    </div>
-
-
-          <p>and then you can use this macro like:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@greet person=&quot;Fred&quot; color=&quot;black&quot;/&gt;</pre>    </div>
-
-
-          <p>The order of parameters is not important, so this is
-          equivalent with the previous:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@greet color=&quot;black&quot; person=&quot;Fred&quot;/&gt;</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">&lt;@greet person=&quot;Fred&quot; color=&quot;black&quot;
-          background=&quot;green&quot;/&gt;</code> then you will get an error, since
-          you haven&#39;t mentioned parameter <code class="inline-code">background</code> in the
-          <code class="inline-code">&lt;#macro
-          <em class="code-color">...</em>&gt;</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">&lt;@greet
-          person=&quot;Fred&quot;/&gt;</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">&quot;black&quot;</code> for
-          <code class="inline-code">color</code> if you don&#39;t specify value for that
-          parameter when you use the <code class="inline-code">greet</code>
-          directive:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro greet person color<strong>=&quot;black&quot;</strong>&gt;
-  &lt;font size=&quot;+2&quot; color=&quot;${color}&quot;&gt;Hello ${person}!&lt;/font&gt;
-&lt;/#macro&gt;</pre>    </div>
-
-
-          <p>Now <code class="inline-code">&lt;@greet person=&quot;Fred&quot;/&gt;</code> is OK,
-          since it is equivalent with <code class="inline-code">&lt;@greet person=&quot;Fred&quot;
-          color=&quot;black&quot;/&gt;</code>, thus the value of
-          <code class="inline-code">color</code> parameter is known. If you want
-          <code class="inline-code">&quot;red&quot;</code> for <code class="inline-code">color</code>, then you
-          write <code class="inline-code">&lt;@greet person=&quot;Fred&quot; color=&quot;red&quot;/&gt;</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">&quot;red&quot;</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=&quot;${foo}&quot;</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=&quot;${3/4}&quot;</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">&lt;#if
-          <em class="code-color">...</em>&gt;<em class="code-color">nested
-          content</em>&lt;/#if&gt;</code> can have. For example,
-          this creates a macro that draws borders around its nested
-          content:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro border&gt;
-  &lt;table border=4 cellspacing=0 cellpadding=4&gt;&lt;tr&gt;&lt;td&gt;
-    <strong>&lt;#nested&gt;</strong>
-  &lt;/tr&gt;&lt;/td&gt;&lt;/table&gt;
-&lt;/#macro&gt;</pre>    </div>
-
-
-          <p>The <code class="inline-code">&lt;#nested&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@border&gt;The bordered text&lt;/@border&gt;</pre>    </div>
-
-
-          <p>the output will be:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  &lt;table border=4 cellspacing=0 cellpadding=4&gt;&lt;tr&gt;&lt;td&gt;
-    The bordered text
-  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
- </pre>    </div>
-
-
-          <p>The <code class="inline-code">nested</code> directive can be called for
-          multiple times, for example:</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro do_thrice&gt;<strong>
-  &lt;#nested&gt;
-  &lt;#nested&gt;
-  &lt;#nested&gt;</strong>
-&lt;/#macro&gt;
-&lt;@do_thrice&gt;
-  Anything.
-&lt;/@do_thrice&gt;</pre>    </div>
-
-
-          <p>will print:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  Anything.
-  Anything.
-  Anything.</pre>    </div>
-
-
-          <p>If you don&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@greet person=&quot;Joe&quot;&gt;
-  Anything.
-&lt;/@greet&gt;</pre>    </div>
-
-
-          <p>then FreeMarker will not see this as an error, and simply
-          prints:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">&lt;font size=&quot;+2&quot;&gt;Hello Joe!&lt;/font&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@border&gt;
-  &lt;ul&gt;
-  &lt;@do_thrice&gt;
-    &lt;li&gt;&lt;@greet person=&quot;Joe&quot;/&gt;
-  &lt;/@do_thrice&gt;
-  &lt;/ul&gt;
-&lt;/@border&gt;</pre>    </div>
-
-
-          <p>and will print:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  &lt;table border=4 cellspacing=0 cellpadding=4&gt;&lt;tr&gt;&lt;td&gt;
-      &lt;ul&gt;
-    &lt;li&gt;&lt;font size=&quot;+2&quot;&gt;Hello Joe!&lt;/font&gt;
-
-    &lt;li&gt;&lt;font size=&quot;+2&quot;&gt;Hello Joe!&lt;/font&gt;
-
-    &lt;li&gt;&lt;font size=&quot;+2&quot;&gt;Hello Joe!&lt;/font&gt;
-
-  &lt;/ul&gt;
-
-  &lt;/tr&gt;&lt;/td&gt;&lt;/table&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro repeat count&gt;
-  &lt;#local y = &quot;test&quot;&gt;
-  &lt;#list 1..count as x&gt;
-    ${y} ${count}/${x}: &lt;#nested&gt;
-  &lt;/#list&gt;
-&lt;/#macro&gt;
-&lt;@repeat count=3&gt;${y!&quot;?&quot;} ${x!&quot;?&quot;} ${count!&quot;?&quot;}&lt;/@repeat&gt;</pre>    </div>
-
-
-          <p>will print this:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">    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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro test foo&gt;${foo} (&lt;#nested&gt;) ${foo}&lt;/#macro&gt;
-&lt;@test foo=&quot;A&quot;&gt;&lt;@test foo=&quot;B&quot;&gt;&lt;@test foo=&quot;C&quot;/&gt;&lt;/@test&gt;&lt;/@test&gt;</pre>    </div>
-
-
-          <p>and will print this:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">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&#39;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">&lt;#list foos as
-          foo&gt;<em class="code-color">...</em>&lt;/#list&gt;</code>),
-          while the <em>value</em> of the variables is set by the
-          directive itself.</p>
-
-          
-
-    <div class="code-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro do_thrice&gt;
-  &lt;#nested <strong>1</strong>&gt;
-  &lt;#nested <strong>2</strong>&gt;
-  &lt;#nested <strong>3</strong>&gt;
-&lt;/#macro&gt;
-&lt;@do_thrice <strong>; x</strong>&gt; &lt;#-- user-defined directive uses &quot;;&quot; instead of &quot;as&quot; --&gt;
-  ${<strong>x</strong>} Anything.
-&lt;/@do_thrice&gt;</pre>    </div>
-
-
-          <p>This will print:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  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 &quot;loop&quot; (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">&lt;@...&gt;</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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#macro repeat count&gt;
-  &lt;#list 1..count as x&gt;
-    &lt;#nested <strong>x, x/2, x==count</strong>&gt;
-  &lt;/#list&gt;
-&lt;/#macro&gt;
-&lt;@repeat count=4 ; <strong>c, halfc, last</strong>&gt;
-  ${<strong>c</strong>}. ${<strong>halfc</strong>}&lt;#if <strong>last</strong>&gt; Last!&lt;/#if&gt;
-&lt;/@repeat&gt;</pre>    </div>
-
-
-          <p>The output will be:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;@repeat count=4 ; <strong>c, halfc, last</strong>&gt;
-  ${c}. ${halfc}&lt;#if last&gt; Last!&lt;/#if&gt;
-&lt;/@repeat&gt;
-&lt;@repeat count=4 ; <strong>c, halfc</strong>&gt;
-  ${c}. ${halfc}
-&lt;/@repeat&gt;
-&lt;@repeat count=4&gt;
-  Just repeat it...
-&lt;/@repeat&gt;</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">&lt;#assign foo =
-          &quot;com.example.FooDirective&quot;?new()&gt;</code> or
-          <code class="inline-code">&lt;#assign foo =
-          &quot;com.example.FooMethod&quot;?new()&gt;</code> on the same place where
-          you would have <code class="inline-code">&lt;#macro foo
-          <em class="code-color">...</em>&gt;</code> or
-          <code class="inline-code">&lt;#function foo
-          <em class="code-color">...</em>&gt;</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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_misc_var.html b/builds/2.3.31-preview/dgui_misc_var.html
deleted file mode 100644
index 1a5888b..0000000
--- a/builds/2.3.31-preview/dgui_misc_var.html
+++ /dev/null
@@ -1,229 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_misc_var.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_misc_var.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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&#39;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">&lt;#list xs as
-            x&gt;<em class="code-color">...</em>&lt;/#list&gt;</code>), and
-            they only exist between the start-tag and end-tag of the
-            directive. (User defined directives, like macros, can also create
-            loop variables.) 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&#39;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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#assign x = 1&gt;  &lt;#-- create variable x --&gt;
-${x}
-&lt;#assign x = 2&gt; &lt;#-- replace variable x --&gt;
-${x}
-&lt;#assign x++&gt; &lt;#-- replace variable x --&gt;
-${x}</pre>    </div>
-
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#assign x = &quot;plain&quot;&gt;
-1. ${x}  &lt;#-- we see the plain var. here --&gt;
-&lt;@test/&gt;
-6. ${x}  &lt;#-- the value of plain var. was not changed --&gt;
-&lt;#list [&quot;loop&quot;] as x&gt;
-    7. ${x}  &lt;#-- now the loop var. hides the plain var. --&gt;
-    &lt;#assign x = &quot;plain2&quot;&gt; &lt;#-- replaces the plain var, not the loop var. --&gt;
-    8. ${x}  &lt;#-- it still hides the plain var. --&gt;
-&lt;/#list&gt;
-9. ${x}  &lt;#-- now the new value of plain var. becomse visible --&gt;
-
-&lt;#macro test&gt;
-  2. ${x}  &lt;#-- we still see the plain var. here --&gt;
-  &lt;#local x = &quot;local&quot;&gt;
-  3. ${x}  &lt;#-- now the local var. hides it --&gt;
-  &lt;#list [&quot;loop&quot;] as x&gt;
-    4. ${x}  &lt;#-- now the loop var. hides the local var. --&gt;
-  &lt;/#list&gt;
-  5. ${x}  &lt;#-- now we see the local var. again --&gt;
-&lt;/#macro&gt;</pre>    </div>
-
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;#list [&quot;loop 1&quot;] as x&gt;
-  ${x}
-  &lt;#list [&quot;loop 2&quot;] as x&gt;
-    ${x}
-    &lt;#list [&quot;loop 3&quot;] as x&gt;
-      ${x}
-    &lt;/#list&gt;
-    ${x}
-  &lt;/#list&gt;
-  ${x}
-&lt;/#list&gt;</pre>    </div>
-
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">  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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">${user}          &lt;#-- prints: Big Joe --&gt;
-&lt;#assign user = &quot;Joe Hider&quot;&gt;
-${user}          &lt;#-- prints: Joe Hider --&gt;
-${.globals.user} &lt;#-- prints: Big Joe --&gt;</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">&lt;#global user =
-        &quot;<em class="code-color">...</em>&quot;&gt;</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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_misc_whitespace.html b/builds/2.3.31-preview/dgui_misc_whitespace.html
deleted file mode 100644
index 6ca5c1b..0000000
--- a/builds/2.3.31-preview/dgui_misc_whitespace.html
+++ /dev/null
@@ -1,327 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_misc_whitespace.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_misc_whitespace.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body"><span class="marked-text">&lt;p&gt;List of users:<em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag">&lt;#assign users = [{&quot;name&quot;:&quot;Joe&quot;,        &quot;hidden&quot;:false},<em><span class="marked-invisible-text">[BR]</span></em>
-                  {&quot;name&quot;:&quot;James Bond&quot;, &quot;hidden&quot;:true},<em><span class="marked-invisible-text">[BR]</span></em>
-                  {&quot;name&quot;:&quot;Julia&quot;,      &quot;hidden&quot;:false}]&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-&lt;ul&gt;<em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag">&lt;#list users as user&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-  <span class="marked-ftl-tag">&lt;#if !user.hidden&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-  &lt;li&gt;<span class="marked-interpolation">${user.name}</span><em><span class="marked-invisible-text">[BR]</span></em>
-  <span class="marked-ftl-tag">&lt;/#if&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag">&lt;/#list&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-&lt;/ul&gt;<em><span class="marked-invisible-text">[BR]</span></em>
-&lt;p&gt;That&#39;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-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body"><span class="marked-text">&lt;p&gt;List of users:<em><span class="marked-invisible-text">[BR]</span></em>
-<em><span class="marked-invisible-text">[BR]</span></em>
-&lt;ul&gt;<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>
-  &lt;li&gt;</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>
-  &lt;li&gt;</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>
-&lt;/ul&gt;<em><span class="marked-invisible-text">[BR]</span></em>
-&lt;p&gt;That&#39;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">&lt;@myMacro/&gt;</code>, <code class="inline-code">&lt;#if
-              <em class="code-color">...</em>&gt;</code>) and/or FTL
-              comments (e.g. <code class="inline-code">&lt;#-- blah --&gt;</code>), apart
-              from the the ignored white-space itself. For example, if a line
-              contains only an <code class="inline-code">&lt;#if
-              <em class="code-color">...</em>&gt;</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">&lt;#if
-              <em class="code-color">...</em>&gt;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">&lt;#if
-              <em class="code-color">...</em>&gt;&lt;#list
-              <em class="code-color">...</em>&gt;</code> is subject to
-              white-space ignoring, while a line that contains
-              <code class="inline-code">&lt;#if <em class="code-color">...</em>&gt; &lt;#list
-              <em class="code-color">...</em>&gt;</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-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body"><span class="marked-text">&lt;p&gt;List of users:<em><span class="marked-invisible-text">[BR]</span></em>
-&lt;ul&gt;<em><span class="marked-invisible-text">[BR]</span></em>
-  &lt;li&gt;</span>Joe<span class="marked-text"><em><span class="marked-invisible-text">[BR]</span></em>
-  &lt;li&gt;</span>Julia<span class="marked-text"><em><span class="marked-invisible-text">[BR]</span></em>
-&lt;/ul&gt;<em><span class="marked-invisible-text">[BR]</span></em>
-&lt;p&gt;That&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body"><span class="marked-text">&lt;p&gt;List of users:<em><span class="marked-invisible-text">[BR]</span></em></span>
-<span class="marked-ftl-tag">&lt;#assign users = [{&quot;name&quot;:&quot;Joe&quot;,        &quot;hidden&quot;:false},<em><span class="marked-invisible-text">[BR]</span></em>
-                  {&quot;name&quot;:&quot;James Bond&quot;, &quot;hidden&quot;:true},<em><span class="marked-invisible-text">[BR]</span></em>
-                  {&quot;name&quot;:&quot;Julia&quot;,      &quot;hidden&quot;:false}]&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-text">&lt;ul&gt;<em><span class="marked-invisible-text">[BR]</span></em></span>
-<span class="marked-ftl-tag">&lt;#list users as user&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-  <span class="marked-ftl-tag">&lt;#if !user.hidden&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-text">  &lt;li&gt;<span class="marked-interpolation">${user.name}</span><em><span class="marked-invisible-text">[BR]</span></em></span>
-  <span class="marked-ftl-tag">&lt;/#if&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag">&lt;/#list&gt;</span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-text">&lt;/ul&gt;<em><span class="marked-invisible-text">[BR]</span></em>
-&lt;p&gt;That&#39;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&#39;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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body"><strong>&lt;#compress&gt;</strong>
-&lt;#assign users = [{&quot;name&quot;:&quot;Joe&quot;,        &quot;hidden&quot;:false},
-                  {&quot;name&quot;:&quot;James Bond&quot;, &quot;hidden&quot;:true},
-                  {&quot;name&quot;:&quot;Julia&quot;,      &quot;hidden&quot;:false}]&gt;
-List of users:
-&lt;#list users as user&gt;
-  &lt;#if !user.hidden&gt;
-  - ${user.name}
-  &lt;/#if&gt;
-&lt;/#list&gt;
-That&#39;s all.
-<strong>&lt;/#compress&gt;</strong></pre>    </div>
-
-
-          <p>will be:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">List of users:
-- Joe
-- Julia
-That&#39;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">&lt;#compress&gt;<em class="code-color">...</em>&lt;/#compress&gt;</code>
-          on the last example with <code class="inline-code">&lt;@compress
-          single_line=true&gt;<em class="code-color">...</em>&lt;/@compress&gt;</code>,
-          then you get this output:</p>
-
-          
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">List of users: - Joe - Julia That&#39;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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_quickstart.html b/builds/2.3.31-preview/dgui_quickstart.html
deleted file mode 100644
index 146f775..0000000
--- a/builds/2.3.31-preview/dgui_quickstart.html
+++ /dev/null
@@ -1,74 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_quickstart.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_quickstart.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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 introd [...]
-      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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_quickstart_basics.html b/builds/2.3.31-preview/dgui_quickstart_basics.html
deleted file mode 100644
index 1e12681..0000000
--- a/builds/2.3.31-preview/dgui_quickstart_basics.html
+++ /dev/null
@@ -1,162 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_quickstart_basics.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_quickstart_basics.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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&#39;s assume that you need a HTML page on a website, similar to
-        this:</p>
-
-    <div class="code-block role-output">
-<div class="code-block-label">Output</div><pre class="code-block-body">&lt;html&gt;
-&lt;head&gt;
-  &lt;title&gt;Welcome!&lt;/title&gt;
-&lt;/head&gt;
-&lt;body&gt;
-  &lt;h1&gt;Welcome <strong>John Doe</strong>!&lt;/h1&gt;
-  &lt;p&gt;Our latest product:
-  &lt;a href=&quot;<strong>products/greenmouse.html</strong>&quot;&gt;<strong>green mouse</strong>&lt;/a&gt;!
-&lt;/body&gt;
-&lt;/html&gt;</pre>    </div>
-<p>But the user&#39;s name (&quot;John Doe&quot; 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 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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body"><a name="example.first"></a>&lt;html&gt;
-&lt;head&gt;
-  &lt;title&gt;Welcome!&lt;/title&gt;
-&lt;/head&gt;
-&lt;body&gt;
-  &lt;h1&gt;Welcome <strong>${user}</strong>!&lt;/h1&gt;
-  &lt;p&gt;Our latest product:
-  &lt;a href=&quot;<strong>${latestProduct.url}</strong>&quot;&gt;<strong>${latestProduct.name}</strong>&lt;/a&gt;!
-&lt;/body&gt;
-&lt;/html&gt;</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&#39;s Web browser. So the
-        visitor&#39;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&#39;s response.)</p><p>Note that the template doesn&#39;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&#39;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-block role-data-model">
-<div class="code-block-label">Data Model</div><pre class="code-block-body">(root)
-  |
-  +- <strong>user</strong> = &quot;Big Joe&quot;
-  |
-  +- <strong>latestProduct</strong>
-      |
-      +- <strong>url</strong> = &quot;products/greenmouse.html&quot;
-      |
-      +- <strong>name</strong> = &quot;green mouse&quot;</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&#39;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">&quot;user&quot;</code> and
-          <code class="inline-code">&quot;latestProducts&quot;</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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_quickstart_datamodel.html b/builds/2.3.31-preview/dgui_quickstart_datamodel.html
deleted file mode 100644
index bcda4ba..0000000
--- a/builds/2.3.31-preview/dgui_quickstart_datamodel.html
+++ /dev/null
@@ -1,220 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_quickstart_datamodel.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_quickstart_datamodel.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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-block role-data-model">
-<div class="code-block-label">Data Model</div><pre class="code-block-body"><a name="example.qStart.dataModelWithHashes"></a>(root)
-  |
-  +- animals
-  |   |
-  |   +- mouse
-  |   |   |
-  |   |   +- size = &quot;small&quot;
-  |   |   |
-  |   |   +- price = 50
-  |   |
-  |   +- elephant
-  |   |   |
-  |   |   +- size = &quot;large&quot;
-  |   |   |
-  |   |   +- price = 5000
-  |   |
-  |   +- python
-  |       |
-  |       +- size = &quot;medium&quot;
-  |       |
-  |       +- price = 4999
-  |
-  +- message = &quot;It is a test&quot;
-  |
-  +- misc
-      |
-      +- foo = &quot;Something&quot;</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&#39;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-block role-data-model">
-<div class="code-block-label">Data Model</div><pre class="code-block-body"><a name="example.qStart.dataModelWithSequences"></a>(root)
-  |
-  +- animals
-  |   |
-  |   +- (1st)
-  |   |   |
-  |   |   +- name = &quot;mouse&quot;
-  |   |   |
-  |   |   +- size = &quot;small&quot;
-  |   |   |
-  |   |   +- price = 50
-  |   |
-  |   +- (2nd)
-  |   |   |
-  |   |   +- name = &quot;elephant&quot;
-  |   |   |
-  |   |   +- size = &quot;large&quot;
-  |   |   |
-  |   |   +- price = 5000
-  |   |
-  |   +- (3rd)
-  |       |
-  |       +- name = &quot;python&quot;
-  |       |
-  |       +- size = &quot;medium&quot;
-  |       |
-  |       +- price = 4999
-  |
-  +- misc
-      |
-      +- fruits
-          |
-          +- (1st) = &quot;orange&quot;
-          |
-          +- (2nd) = &quot;banana&quot;</pre>    </div>
-<p>To access a subvariable of a sequence you use a numerical index
-        in square brackets. Indexes start from 0 (it&#39;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">&quot;banana&quot;</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 &#39;&#39;m&#39;&#39;, &#39;&#39;o&#39;&#39;, &#39;&#39;u&#39;&#39;, &#39;&#39;s&#39;&#39;, &#39;&#39;e&#39;&#39; 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&#39;s a numerical value, like the
-            <code class="inline-code">price</code>-s above. The string
-            <code class="inline-code">&quot;50&quot;</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&#39;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="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="https://freemarker.apache.org/history.html">About us</a></li><li><a itemprop="license" href="app_li [...]
-Last generated:
-<time itemprop="dateModified" datetime="2021-02-07T18:37:05Z" title="Sunday, February 7, 2021 6:37:05 PM GMT">2021-02-07 18:37:05 GMT</time>, for Freemarker 2.3.31 </p>
-<p class="copyright">
-© <span itemprop="copyrightYear">1999</span>–2021
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p>
-</div></div></div></body>
-</html>
diff --git a/builds/2.3.31-preview/dgui_quickstart_template.html b/builds/2.3.31-preview/dgui_quickstart_template.html
deleted file mode 100644
index fb3226c..0000000
--- a/builds/2.3.31-preview/dgui_quickstart_template.html
+++ /dev/null
@@ -1,778 +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
-&quot;License&quot;); 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
-&quot;AS IS&quot; 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-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="https://freemarker.apache.org/docs/dgui_quickstart_template.html">
-<link rel="canonical" href="https://freemarker.apache.org/docs/dgui_quickstart_template.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1612723025220">
-</head>
-<body itemscope itemtype="https://schema.org/Code">
-    <meta itemprop="url" content="https://freemarker.apache.org/docs/">
-    <meta itemprop="name" content="Apache FreeMarker Manual">
-
-  <!--[if lte IE 9]>
-  <div class="oldBrowserWarning" style="display: block">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-  <![endif]-->  <div class="oldBrowserWarning">
-    Unsupported web browser - Use a modern browser to view this website!
-  </div>
-<div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div>          <div class="logo">
-<a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a>          </div>
-<ul class="tabs"><li><a href="https://freemarker.apache.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="https://freemarker.apache.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>< [...]
-<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="dgui.html"><span itemprop="name">Template Author&#39;s Guide</span></a></li>< [...]
-<div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><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 cla [...]
-      <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?1612723025220"></script>
-      <script src="docgen-resources/main.min.js?1612723025220"></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="au [...]
-        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">&lt;#--</code> and <code class="inline-code">--&gt;</code>. Unlike
-            HTML comments, FTL comments won&#39;t get into the output (won&#39;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">&lt;table&gt;</code> and
-        <code class="inline-code">&lt;/table&gt;</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&#39;t understand this difference then consider &quot;FTL tag&quot;
-        and &quot;directive&quot; 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-block role-template">
-<div class="code-block-label">Template</div><pre class="code-block-body">&lt;html&gt;
-&lt;head&gt;
-  &lt;title&gt;Welcome!&lt;/title&gt;
-&lt;/head&gt;
-&lt;body&gt;
-  &lt;h1&gt;
-    Welcome ${user}<strong>&lt;#if user == &quot;Big Joe&quot;&gt;</strong>, our beloved leader<strong>&lt;/#if&gt;</strong>!
-  &lt;/h1&gt;
-  &lt;p&gt;Our latest product:
-  &lt;a href=&quot;${latestProduct.url}&quot;&gt;${latestProduct.name}&lt;/a&gt;!
-&lt;/body&gt;
-&lt;/html&gt;</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">&quot;Big
-            Joe&quot;</code>. In general, things between <code class="inline-code">&lt;#if
-            <em class="code-color">condition</em>&gt;</code> and
-            <code class="inline-code">&lt;/#if&gt;</code> tags are skipped if
-            <code class="inline-code"><em class="code-color">condition</em></code> is false
-            (the boolean value).</p>
-
-            <p>Let&#39;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>
... 335290 lines suppressed ...