You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/03/15 21:19:32 UTC
[35/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_config_sharedvariables.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_sharedvariables.html b/builds/2.3.26-nightly/pgui_config_sharedvariables.html
deleted file mode 100644
index d90f624..0000000
--- a/builds/2.3.26-nightly/pgui_config_sharedvariables.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-section">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Shared variables - Apache FreeMarker Manual</title>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="format-detection" content="telephone=no">
-<meta property="og:site_name" content="Apache FreeMarker Manual">
-<meta property="og:title" content="Shared variables">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_sharedvariables.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_sharedvariables.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
-<script>
-(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-ga('create', 'UA-55420501-1', 'auto');
-ga('send', 'pageview');
-</script>
-</head>
-<body itemscope itemtype="https://schema.org/Code">
- <meta itemprop="url" content="http://freemarker.org/docs/">
- <meta itemprop="name" content="Apache FreeMarker Manual">
-
- <!--[if lte IE 9]>
- <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
- <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
-</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_sharedvariables.html"><span itemprop="name">Shared variables</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
- <div class="content-wrapper">
- <div id="table-of-contents-wrapper" class="col-left">
- <script>var breadcrumb = ["Apache FreeMarker Manual","Programmer\'s Guide","The Configuration","Shared variables"];</script>
- <script src="toc.js?1489402528979"></script>
- <script src="docgen-resources/main.min.js?1489402528979"></script>
- </div>
-<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="pgui_config_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_settings.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_sharedvariables" itemprop="headline">Shared variables</h1>
-</div></div><p><strong>Shared variables</strong> are variables
- that are defined for all templates. You can add shared variables to
- the configuration with the <code class="inline-code">setSharedVariable</code>
- methods:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Configuration cfg = new Configuration(Configuration.VERSION_2_3_25);
-<em>..</em>.
-cfg.setSharedVariable("warp", new WarpDirective());
-cfg.setSharedVariable("company", "Foo Inc.");</pre></div><p>In all templates that use this configuration, an user-defined
- directive with name <code class="inline-code">wrap</code> and a string with name
- <code class="inline-code">company</code> will be visible in the data-model root, so
- you don't have to add them to the root hash again and again. A
- variable in the root object that you pass to the
- <code class="inline-code">Template.process</code> will hide the shared variable with
- the same name.</p> <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>Never use <code class="inline-code">TemplateModel</code> implementation that
- is not <a href="gloss.html#gloss.threadSafe">thread-safe</a> for
- shared variables, if the configuration is used by multiple threads!
- This is the typical situation for Servlet based applications.</p>
- </div>
-<p>Due to backward compatibility heritage, the set of shared
- variables is initially (i.e., for a new
- <code class="inline-code">Configuration</code> instance) not empty. It contains the
- following user-defined directives (they are "user-defined" in the
- sense that you use <code class="inline-code">@</code> to call them instead of
- <code class="inline-code">#</code>):</p> <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>name</th>
-
-
- <th>class</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">capture_output</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.CaptureOutput</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">compress</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.StandardCompress</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">html_escape</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.HtmlEscape</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">normalize_newlines</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.NormalizeNewlines</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">xml_escape</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.XmlEscape</code></td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_settings.html"><span>Next</span></a></div></div></div></div> </div>
- </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
-Last generated:
-<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
-<p class="copyright">
-� <span itemprop="copyrightYear">1999</span>\u20132017
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
-</div></div></div></body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_config_templateconfigurations.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_templateconfigurations.html b/builds/2.3.26-nightly/pgui_config_templateconfigurations.html
deleted file mode 100644
index 2c2f86c..0000000
--- a/builds/2.3.26-nightly/pgui_config_templateconfigurations.html
+++ /dev/null
@@ -1,314 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-section">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Template configurations - Apache FreeMarker Manual</title>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="format-detection" content="telephone=no">
-<meta property="og:site_name" content="Apache FreeMarker Manual">
-<meta property="og:title" content="Template configurations">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_templateconfigurations.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_templateconfigurations.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
-<script>
-(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-ga('create', 'UA-55420501-1', 'auto');
-ga('send', 'pageview');
-</script>
-</head>
-<body itemscope itemtype="https://schema.org/Code">
- <meta itemprop="url" content="http://freemarker.org/docs/">
- <meta itemprop="name" content="Apache FreeMarker Manual">
-
- <!--[if lte IE 9]>
- <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
- <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
-</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_templateconfigurations.html"><span itemprop="name">Template configurations</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
- <div class="content-wrapper">
- <div id="table-of-contents-wrapper" class="col-left">
- <script>var breadcrumb = ["Apache FreeMarker Manual","Programmer\'s Guide","The Configuration","Template configurations"];</script>
- <script src="toc.js?1489402528979"></script>
- <script src="docgen-resources/main.min.js?1489402528979"></script>
- </div>
-<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="pgui_config_errorhandling.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_outputformatsautoesc.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_templateconfigurations" itemprop="headline">Template configurations</h1>
-</div></div><p>"Template configurations" refers to the
- <code class="inline-code">template_configurations</code> setting of
- <code class="inline-code">Configuration</code>
- (<code class="inline-code">Configuration.setTemplateConfigurations(<em class="code-color">...</em>)</code>).
- This setting lets you override individual settings coming from the
- common <code class="inline-code">Configuration</code> object, depending on the name
- (path) of the template.</p><p>It's important to understand, however, that this setting only
- has effect if you get templates with
- <code class="inline-code">Configuration.getTemplate(<em class="code-color">...</em>)</code>,
- not when you create templates directly with the
- <code class="inline-code">Template</code> constructors. In that case it's up to you
- to invoke this mechanism (see <code class="inline-code">TemplateCache</code> source
- code as an example).</p><p>You will use these kind of objects to declare your template
- configuration rules:</p><ul>
- <li>
- <p><code class="inline-code">TemplateConfiguration</code>-s: These store the
- actual setting assignments that you want to apply. For example,
- this <code class="inline-code">TemplateConfiguration</code> will set the
- encoding and the output format of the matched template (and leave
- all other settings of it alone):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">TemplateConfiguration tcUTF8XML = new TemplateConfiguration();
-tc.setEncoding("utf-8");
-tc.setOutputFormat(XMLOutputFormat.INSTANCE);</pre></div>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateSourceMatcher</code> (abstract)
- subclasses: These define a rule that matches templates based on
- their source name (their source path; as in
- <code class="inline-code">Template.getSourceName()</code>), and possibly on
- other <code class="inline-code">TemplateLoader</code>-dependent properties. For
- example, <code class="inline-code">new FileExtensionMatcher("xml")</code>
- matches templates that has <code class="inline-code">xml</code> file extension.
- See all the subclasses in the Java API documentation.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateConfigurationFactory</code>-es: This is
- what connects <code class="inline-code">TemplateConfiguration</code>-s and
- <code class="inline-code">TemplateSourceMatcher</code>-s together. This is the
- Java type of the <code class="inline-code">template_configurations</code>
- setting. See the examples below for more.</p>
- </li>
- </ul>
-
-
-
-
-<h2 class="content-header header-simplesect" id="autoid_47">Example 1</h2>
-
-
- <p>This setup combines our earlier two example objects with a
- <code class="inline-code">ConditionalTemplateConfigurationFactory</code>, causing
- all templates with <code class="inline-code">xml</code> extension to get UTF-8
- encoding and XML output format:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(
- new FileExtensionMatcher("xml"),
- tcUTF8XML));</pre></div>
-
- <p>The same configuring is also doable if you don't have access
- to the configuring Java code, but only to a Java
- <code class="inline-code">*.properties</code> file or other kind of string-string
- key value pairs (the <code class="inline-code">\</code>-s are prescribed by the
- Java Properties file format for multi-line values):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">templateConfigurations = \
- ConditionalTemplateConfigurationFactory( \
- FileExtensionMatcher("xml"), \
- TemplateConfiguration( \
- encoding = "utf-8", \
- outputFormat = XMLOutputFormat() \
- ) \
- )</pre></div>
-
-
-
-
-
-<h2 class="content-header header-simplesect" id="autoid_48">Example 2</h2>
-
-
- <p>Let's say you only need to handle templates in the
- <code class="inline-code">mail</code> directory specially, other templates can use
- the setting coming from the shared <code class="inline-code">Configuration</code>
- singleton. The names of templates there must contain
- <code class="inline-code">".subject."</code> or <code class="inline-code">".body."</code>.
- Subject templates must get <code class="inline-code">plainText</code> output
- format, while body templates must get <code class="inline-code">HTML</code> output
- format. So we have to make a choice here, and that's when you need a
- <code class="inline-code">FirstMatchTemplateConfigurationFactory</code>.</p>
-
- <p>Assuming <code class="inline-code">cfg</code> stores the shared
- <code class="inline-code">Configuration</code> singleton, you set this up like
- this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(
- new PathGlobMatcher("mail/**"),
- new FirstMatchTemplateConfigurationFactory(
- new ConditionalTemplateConfigurationFactory(
- new FileNameGlobMatcher("*.subject.*"),
- tcSubject),
- new ConditionalTemplateConfigurationFactory(
- new FileNameGlobMatcher("*.body.*"),
- tcBody)
- )
- .noMatchErrorDetails(
- "Mail template names must contain \".subject.\" or \".body.\"!")
- ));</pre></div>
-
- <p>The equivalent configuration using a Java
- <code class="inline-code">*.properties</code> file or other kind of string-string
- key value pairs (the <code class="inline-code">\</code>-s are prescribed by the
- Java Properties file format only):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">templateConfigurations = \
- ConditionalTemplateConfigurationFactory( \
- PathGlobMatcher("mail/**"), \
- FirstMatchTemplateConfigurationFactory( \
- ConditionalTemplateConfigurationFactory( \
- FileNameGlobMatcher("*.subject.*"), \
- TemplateConfiguration(outputFormat = PlainTextOutputFormat()) \
- ), \
- ConditionalTemplateConfigurationFactory( \
- FileNameGlobMatcher("*.body.*"), \
- TemplateConfiguration(outputFormat = HTMLOutputFormat()) \
- ), \
- noMatchErrorDetails = 'Mail template names must contain ".subject." or ".body."!' \
- ) \
- )</pre></div>
-
-
-
-
-
-<h2 class="content-header header-simplesect" id="autoid_49">Example 3</h2>
-
-
- <p>Let's say you want the following deviations from the shared
- <code class="inline-code">Configuration</code> settings in your
- application:</p>
-
- <ul>
- <li>
- <p>All templates whose name contains
- <code class="inline-code">".stats."</code> should use ISO date/time format and
- UTC time zone</p>
- </li>
-
- <li>
- <p>All templates inside the <code class="inline-code">mail</code> directory
- should use UTF-8 encoding</p>
- </li>
-
- <li>
- <p>Templates with <code class="inline-code">xml</code> file extension
- should use XML <code class="inline-code">output_format</code>, templates with
- <code class="inline-code">html</code> or <code class="inline-code">htm</code> extension
- should use HTML output format. For other templates, the shared
- <code class="inline-code">Configuration</code> can dictate the
- <code class="inline-code">output_format</code>.</p>
- </li>
- </ul>
-
- <p>Here we have 3 independent concerns, and possibly multiple (or
- none) of those apply to a template; that's when you need a
- <code class="inline-code">MergingTemplateConfigurationFactory</code>. The last
- point describes a rule where you have mutually exclusive choices;
- that's when you need a
- <code class="inline-code">FirstMatchTemplateConfigurationFactory</code>, but this
- time no choice is also allowed. Here's the source code, assuming
- <code class="inline-code">cfg</code> stores the shared
- <code class="inline-code">Configuration</code> instance:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">TemplateConfiguration tcStats = new TemplateConfiguration();
-tcStats.setDateTimeFormat("iso");
-tcStats.setDateFormat("iso");
-tcStats.setTimeFormat("iso");
-tcStats.setTimeZone(DateUtil.UTC);
-
-TemplateConfiguration tcMail = new TemplateConfiguration();
-tcMail.setEncoding("utf-8");
-
-TemplateConfiguration tcHTML = new TemplateConfiguration();
-tcHTML.setOutputFormat(HTMLOutputFormat.INSTANCE);
-
-TemplateConfiguration tcXML = new TemplateConfiguration();
-tcXML.setOutputFormat(XMLOutputFormat.INSTANCE);
-
-cfg.setTemplateConfigurations(
- new MergingTemplateConfigurationFactory(
- new ConditionalTemplateConfigurationFactory(
- new FileNameGlobMatcher("*.stats.*"),
- tcStats),
- new ConditionalTemplateConfigurationFactory(
- new PathGlobMatcher("mail/**"),
- tcMail),
- new FirstMatchTemplateConfigurationFactory(
- new ConditionalTemplateConfigurationFactory(
- new FileExtensionMatcher("xml"),
- tcXML),
- new ConditionalTemplateConfigurationFactory(
- new OrMatcher(
- new FileExtensionMatcher("html"),
- new FileExtensionMatcher("htm")),
- tcHTML)
- ).allowNoMatch(true)
- )
-);</pre></div>
-
- <p>The equivalent configuration using a Java
- <code class="inline-code">*.properties</code> file or other kind of string-string
- key value pairs (the <code class="inline-code">\</code>-s are prescribed by the
- Java Properties file format only):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">templateConfigurations = \
- MergingTemplateConfigurationFactory( \
- ConditionalTemplateConfigurationFactory( \
- FileNameGlobMatcher("*.stats.*"), \
- TemplateConfiguration( \
- dateTimeFormat = "iso", \
- dateFormat = "iso", \
- timeFormat = "iso", \
- timeZone = TimeZone("UTC") \
- ) \
- ), \
- ConditionalTemplateConfigurationFactory( \
- PathGlobMatcher("mail/**"), \
- TemplateConfiguration(encoding = "utf-8") \
- ), \
- FirstMatchTemplateConfigurationFactory( \
- ConditionalTemplateConfigurationFactory( \
- FileExtensionMatcher("xml"), \
- TemplateConfiguration(outputFormat = XMLOutputFormat()) \
- ), \
- ConditionalTemplateConfigurationFactory( \
- OrMatcher( \
- FileExtensionMatcher("html"), \
- FileExtensionMatcher("htm") \
- ), \
- TemplateConfiguration(outputFormat = HTMLOutputFormat()) \
- ), \
- allowNoMatch = true \
- ) \
- )</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_errorhandling.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_outputformatsautoesc.html"><span>Next</span></a></div></div></div></div> </div>
- </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
-Last generated:
-<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
-<p class="copyright">
-� <span itemprop="copyrightYear">1999</span>\u20132017
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
-</div></div></div></body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_config_templateloading.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_templateloading.html b/builds/2.3.26-nightly/pgui_config_templateloading.html
deleted file mode 100644
index 62595bb..0000000
--- a/builds/2.3.26-nightly/pgui_config_templateloading.html
+++ /dev/null
@@ -1,364 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-section">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Template loading - Apache FreeMarker Manual</title>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="format-detection" content="telephone=no">
-<meta property="og:site_name" content="Apache FreeMarker Manual">
-<meta property="og:title" content="Template loading">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_templateloading.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_templateloading.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
-<script>
-(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-ga('create', 'UA-55420501-1', 'auto');
-ga('send', 'pageview');
-</script>
-</head>
-<body itemscope itemtype="https://schema.org/Code">
- <meta itemprop="url" content="http://freemarker.org/docs/">
- <meta itemprop="name" content="Apache FreeMarker Manual">
-
- <!--[if lte IE 9]>
- <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
- <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
-</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_templateloading.html"><span itemprop="name">Template loading</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
- <div class="content-wrapper">
- <div id="table-of-contents-wrapper" class="col-left">
- <script>var breadcrumb = ["Apache FreeMarker Manual","Programmer\'s Guide","The Configuration","Template loading"];</script>
- <script src="toc.js?1489402528979"></script>
- <script src="docgen-resources/main.min.js?1489402528979"></script>
- </div>
-<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="pgui_config_settings.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_errorhandling.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_templateloading" itemprop="headline">Template loading</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_38" data-menu-target="autoid_38">Template loaders</a><ul><li><a class="page-menu-link" href="#autoid_39" data-menu-target="autoid_39">Built-in template loaders</a></li><li><a class="page-menu-link" href="#autoid_40" data-menu-target="autoid_40">Loading templates from multiple locations</a></li><li><a class="page-menu-link" href="#autoid_41" data-menu-target="autoid_41">Loading templates from other sources</a></li><li><a class="page-menu-link" href="#autoid_42" data-menu-target="autoid_42">The template name (template path)</a></li></ul></li><li><a class="page-menu-link" href="#pgui_config_templateloading_caching" data-menu-target="pgui_config_templateloading_caching">Template caching</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_38">Template loaders</h2>
-
-
-
-
- <p>Template loaders are objects that load raw textual data based
- on abstract template paths like <code class="inline-code">"index.ftl"</code> or
- <code class="inline-code">"products/catalog.ftl"</code>. It's up to the concrete
- template loader if from where and how the template
- "files" are loaded. They could be real files inside a
- specified directory, or values in a data base table, or
- <code class="inline-code">String</code>-s in a Java Map, etc. When you call
- <code class="inline-code">cfg.getTemplate</code> (where <code class="inline-code">cfg</code> is
- a <code class="inline-code">Configuration</code> instance), FreeMarker asks the
- template loader (<code class="inline-code">cfg.getTemplateLoader</code>) to return
- the text for the given template path, and then FreeMarker parses
- that text as template. It doesn't care or even know if the template
- is a real file or not, and where it is physically; those details are
- only known by the template loader.</p>
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_39">Built-in template loaders</h3>
-
-
- <p>You can set up the three most common template loading
- mechanism in the <code class="inline-code">Configuration</code> using the
- following <em>convenience</em> methods:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">void setDirectoryForTemplateLoading(File
- dir)</code>: Sets a directory on the file system from which
- to load templates. Template names (template paths) will be
- interpreted relatively to this physical directory. It won't
- let you load files outside this directory.</p>
- </li>
-
- <li>
- <p><code class="inline-code">void setClassForTemplateLoading(Class cl,
- String basePackagePath)</code> and <code class="inline-code">void
- setClassLoaderForTemplateLoading(ClassLoader classLoader,
- String basePackagePath)</code>: These are for when you want
- to load templates via the same mechanism with which Java loads
- classes (from the class-path, as they used to say vaguely).
- This is very likely be the preferred means of loading
- templates for production code, as it allows you to keep
- everything inside the deployment <code class="inline-code">jar</code> files.
- The first parameter decides which Java
- <code class="inline-code">ClassLoader</code> will be used. The second
- parameter specifies the package that contains the templates,
- in <code class="inline-code">/</code>-separated format. Note that if you
- don't start it with <code class="inline-code">/</code>, it will be
- interpreted relatively to the package of the
- <code class="inline-code">Class</code> parameter.</p>
- </li>
-
- <li>
- <p><code class="inline-code">void setServletContextForTemplateLoading(Object
- servletContext, String path)</code>: Takes the context of
- your Servlet-based web application, and a base path, which is
- interpreted relative to the web application root directory
- (that's the parent of the <code class="inline-code">WEB-INF</code>
- directory). Note that we refer to "directory" here although
- this loading method works even for unpacked
- <code class="inline-code">.war</code> files, since it uses
- <code class="inline-code">ServletContext.getResource()</code> to access the
- templates. If you omit the second parameter (or use
- <code class="inline-code">""</code>), you can simply store the static files
- (<code class="inline-code">.html</code>, <code class="inline-code">.jpg</code>, etc.)
- mixed with the <code class="inline-code">.ftl</code> files. Of course, you
- must set up a Servlet for the <code class="inline-code">*.ftl</code>,
- <code class="inline-code">*.ftlh</code>, <code class="inline-code">*.ftlx</code>
- uri-patterns in <code class="inline-code">WEB-INF/web.xml</code> for this,
- otherwise the client will get the raw templates as is! To
- avoid a such accident, many prefers storing the templates
- somewhere inside the <code class="inline-code">WEB-INF</code> directory,
- which is never visitable directly. This mechanism will very
- likely be the preferred means of loading templates for servlet
- applications, since the templates can be updated without
- restarting the web application, while this often doesn't work
- with the class-loader mechanism.</p>
- </li>
- </ul>
-
- <p>If you want to use a custom
- <code class="inline-code">TemplateLoader</code> implementation, or need to set
- up some extra settings of a built-in template loader, you need to
- instantiate the <code class="inline-code">TemplateLoader</code> object yourself,
- and then call
- <code class="inline-code">Configuration.setTemplateLoader(TemplateLoader)</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">WebappTemplateLoader templateLoader = new WebappTemplateLoader(servletContext, "WEB-INF/templates");
-templateLoader.setURLConnectionUsesCaches(false);
-templateLoader.setAttemptFileAccess(false);
-cfg.setTemplateLoader(templateLoader);</pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_40">Loading templates from multiple locations</h3>
-
-
- <p>If you need to load templates from multiple locations, you
- have to instantiate the template loader objects for every
- location, wrap them into a <code class="inline-code">MultiTemplateLoader</code>,
- and finally pass that loader to the
- <code class="inline-code">setTemplateLoader(TemplateLoader loader)</code> method
- of <code class="inline-code">Configuration</code>. Here's an example for loading
- templates from two distinct directories and with the
- class-loader:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">import freemarker.cache.*; // template loaders live in this package
-
-<em>...</em>
-
-FileTemplateLoader ftl1 = new FileTemplateLoader(new File("/tmp/templates"));
-FileTemplateLoader ftl2 = new FileTemplateLoader(new File("/usr/data/templates"));
-ClassTemplateLoader ctl = new ClassTemplateLoader(getClass(), "/com/example/templates");
-
-MultiTemplateLoader mtl = new MultiTemplateLoader(new TemplateLoader[] { ftl1, ftl2, ctl });
-
-cfg.setTemplateLoader(mtl);</pre></div>
-
- <p>Now FreeMarker will try to load templates from
- <code class="inline-code">/tmp/templates</code> directory, and if it does not
- find the requested template there, it will try to load that from
- <code class="inline-code">/usr/data/templates</code>, and if it still does not
- find the requested template, then it tries to load it from the
- <code class="inline-code">com.example.templates</code> Java package.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_41">Loading templates from other sources</h3>
-
-
- <p>If none of the built-in class loaders fit your needs, you
- can write your own class that implements the
- <code class="inline-code">freemarker.cache.TemplateLoader</code> interface and
- pass it to the <code class="inline-code">setTemplateLoader(TemplateLoader
- loader)</code> method of <code class="inline-code">Configuration</code>.
- Please read the API JavaDoc for more information.</p>
-
- <p>If your template source accesses the templates through an
- URL, you needn't implement a <code class="inline-code">TemplateLoader</code>
- from scratch; you can choose to subclass
- <code class="inline-code">freemarker.cache.URLTemplateLoader</code> instead and
- just implement the <code class="inline-code">URL getURL(String
- templateName)</code> method.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_42">The template name (template path)</h3>
-
-
-
-
-
-
-
-
- <p>It is up to the template loader how it interprets template
- names (also known as template paths). But to work together with
- other components there are restrictions regarding the format of
- the path. In general, it is strongly recommended that template
- loaders use URL-style paths. The path must not use
- <code class="inline-code">/</code> (path step separator) character, nor the
- <code class="inline-code">.</code> (same-directory) and <code class="inline-code">..</code>
- (parent directory) path steps with other meaning than they have in
- URL paths (or in UN*X paths). The <code class="inline-code">*</code> (asterisk)
- step is also reserved, and used for "template
- acquisition" feature of FreeMarker.</p>
-
- <p><code class="inline-code">://</code> (or with
- <code class="inline-code">template_name_format</code> setting set to
- <code class="inline-code">DEFAULT_2_4_0</code>, the <code class="inline-code">:</code> (colon)
- character) is reserved for specifying a scheme part, similarly as
- it works with URI-s. For example
- <code class="inline-code">someModule://foo/bar.ftl</code> uses the
- <code class="inline-code">someModule</code>, or assuming the
- <code class="inline-code">DEFAULT_2_4_0</code> format,
- <code class="inline-code">classpath:foo/bar.ftl</code> uses the
- <code class="inline-code">classpath</code> scheme. Interpreting the scheme part
- is completely up to the <code class="inline-code">TemplateLoader</code>. (The
- FreeMarker core is only aware of the idea of schemes because
- otherwise it couldn't resolve relative template names
- properly.)</p>
-
- <p>FreeMarker always normalizes the paths before passing them
- to the <code class="inline-code">TemplateLoader</code>, so the paths don't
- contain <code class="inline-code">/../</code> or such, and are relative to the
- imaginary template root directory (that is, they don't start with
- <code class="inline-code">/</code>). They don't contain the <code class="inline-code">*</code>
- step either, as template acquisition happens in an earlier stage.
- Furthermore, with <code class="inline-code">template_name_format</code> setting
- set to <code class="inline-code">DEFAULT_2_4_0</code>, multiple consecutive
- <code class="inline-code">/</code>-s will be normalized to a single
- <code class="inline-code">/</code> (unless they are part of the
- <code class="inline-code">://</code> scheme separator).</p>
-
- <p>Note that FreeMarker template path should always uses slash
- (not backslash) regardless of the host OS.</p>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_config_templateloading_caching">Template caching</h2>
-
-
-
-
-
-
- <p>FreeMarker caches templates (assuming you use the
- <code class="inline-code">Configuration</code> methods to create
- <code class="inline-code">Template</code> objects). This means that when you call
- <code class="inline-code">getTemplate</code>, FreeMarker not only returns the
- resulting <code class="inline-code">Template</code> object, but stores it in a
- cache, so when next time you call <code class="inline-code">getTemplate</code>
- with the same (or equivalent) path, it just returns the cached
- <code class="inline-code">Template</code> instance, and will not load and parse
- the template file again.</p>
-
- <p>If you change the template file, then FreeMarker will re-load
- and re-parse the template automatically when you get the template
- next time. However, since always checking for changes can be burden
- for a system that processes lot of templates, there is a
- <code class="inline-code">Configuration</code> level setting called "update
- delay" (defaults is 5 seconds). Until this much time has
- elapsed since the last checking for a newer version, FreeMarker will
- not check again if the template was changed. If you want to see the
- changes without delay, set this setting to 0. Note that some
- template loaders won't see that a template was changed because of
- the underlying storage mechanism doesn't support that; for example,
- class-loader based template loaders may have this problem.</p>
-
- <p>A template will be removed from the cache if you call
- <code class="inline-code">getTemplate</code> and FreeMarker realizes that the
- template file has been removed meanwhile. Also, if the JVM thinks
- that it begins to run out of memory, by default it can arbitrarily
- drop templates from the cache. Furthermore, you can empty the cache
- manually with the <code class="inline-code">clearTemplateCache</code> method of
- <code class="inline-code">Configuration</code>. You can also drop selected
- template from the cache with
- <code class="inline-code">removeTemplateFromCache</code>; this can be also
- utilized to force re-loading a template regardless of the
- "update delay" setting.</p>
-
- <p>The actual strategy of when a cached template should be thrown
- away is pluggable with the <code class="inline-code">cache_storage</code> setting,
- by which you can plug any <code class="inline-code">CacheStorage</code>
- implementation. For most users
- <code class="inline-code">freemarker.cache.MruCacheStorage</code> will be
- sufficient. This cache storage implements a two-level Most Recently
- Used cache. In the first level, items are strongly referenced up to
- the specified maximum (strongly referenced items can't be dropped by
- the JVM, as opposed to softly referenced items). When the maximum is
- exceeded, the least recently used item is moved into the second
- level cache, where they are softly referenced, up to another
- specified maximum. The size of the strong and soft parts can be
- specified with the constructor. For example, set the size of the
- strong part to 20, and the size of soft part to 250:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20, 250))</pre></div>
-
- <p>Or, since <code class="inline-code">MruCacheStorage</code> is the default
- cache storage implementation:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setSetting(Configuration.CACHE_STORAGE_KEY, "strong:20, soft:250");</pre></div>
-
- <p>When you create a new <code class="inline-code">Configuration</code> object,
- initially it uses an <code class="inline-code">MruCacheStorage</code> where
- <code class="inline-code">strongSizeLimit</code> is 0, and
- <code class="inline-code">softSizeLimit</code> is
- <code class="inline-code">Integer.MAX_VALUE</code> (that is, in practice,
- infinite). Depending on how smart the JVM is, using non-0
- <code class="inline-code">strongSizeLimit</code> is maybe a safer option, as with
- only softly referenced items the JVM could even throw the most
- frequently used templates when there's a resource shortage, which
- then have to be re-loaded and re-parsed, burdening the system even
- more.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_settings.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_errorhandling.html"><span>Next</span></a></div></div></div></div> </div>
- </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
-Last generated:
-<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
-<p class="copyright">
-� <span itemprop="copyrightYear">1999</span>\u20132017
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
-</div></div></div></body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_datamodel.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel.html b/builds/2.3.26-nightly/pgui_datamodel.html
deleted file mode 100644
index d660cee..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>The Data Model - Apache FreeMarker Manual</title>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="format-detection" content="telephone=no">
-<meta property="og:site_name" content="Apache FreeMarker Manual">
-<meta property="og:title" content="The Data Model">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
-<script>
-(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-ga('create', 'UA-55420501-1', 'auto');
-ga('send', 'pageview');
-</script>
-</head>
-<body itemscope itemtype="https://schema.org/Code">
- <meta itemprop="url" content="http://freemarker.org/docs/">
- <meta itemprop="name" content="Apache FreeMarker Manual">
-
- <!--[if lte IE 9]>
- <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
- <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
-</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li></ul><div class="bookmark
s" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
- <div class="content-wrapper">
- <div id="table-of-contents-wrapper" class="col-left">
- <script>var breadcrumb = ["Apache FreeMarker Manual","Programmer\'s Guide","The Data Model"];</script>
- <script src="toc.js?1489402528979"></script>
- <script src="docgen-resources/main.min.js?1489402528979"></script>
- </div>
-<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="pgui_quickstart_all.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_basics.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="pgui_datamodel" itemprop="headline">The Data Model</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="pgui_datamodel_basics.html" data-menu-target="pgui_datamodel_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_datamodel_scalar.html" data-menu-target="pgui_datamodel_scalar">Scalars</a></li><li><a class="page-menu-link" href="pgui_datamodel_parent.html" data-menu-target="pgui_datamodel_parent">Containers</a></li><li><a class="page-menu-link" href="pgui_datamodel_method.html" data-menu-target="pgui_datamodel_method">Methods</a></li><li><a class="page-menu-link" href="pgui_datamodel_directive.html" data-menu-target="pgui_datamodel_directive">Directives</a></li><li><a class="page-menu-link" href="pgui_datamodel_node.html" data-menu-target="pgui_datamodel_node">Node variables</a></li><li><a class="page-menu-link" href="pgui_datamodel_objectWrapper.html" data-menu-target="pgui_datamodel_objectWrapper">Object wrappers</a></li></ul> </div><p>This is just an introductory explanation. See the <a href="api/index.html">FreeMarker Java API
documentation</a> for more
- detailed information.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_quickstart_all.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_basics.html"><span>Next</span></a></div></div></div></div> </div>
- </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
-Last generated:
-<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
-<p class="copyright">
-� <span itemprop="copyrightYear">1999</span>\u20132017
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
-</div></div></div></body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_datamodel_basics.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel_basics.html b/builds/2.3.26-nightly/pgui_datamodel_basics.html
deleted file mode 100644
index eae2c70..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel_basics.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-section">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Basics - Apache FreeMarker Manual</title>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="format-detection" content="telephone=no">
-<meta property="og:site_name" content="Apache FreeMarker Manual">
-<meta property="og:title" content="Basics">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel_basics.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel_basics.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
-<script>
-(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-ga('create', 'UA-55420501-1', 'auto');
-ga('send', 'pageview');
-</script>
-</head>
-<body itemscope itemtype="https://schema.org/Code">
- <meta itemprop="url" content="http://freemarker.org/docs/">
- <meta itemprop="name" content="Apache FreeMarker Manual">
-
- <!--[if lte IE 9]>
- <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
- <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
-</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel_basics.html"><span itemprop="name">Basics</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
- <div class="content-wrapper">
- <div id="table-of-contents-wrapper" class="col-left">
- <script>var breadcrumb = ["Apache FreeMarker Manual","Programmer\'s Guide","The Data Model","Basics"];</script>
- <script src="toc.js?1489402528979"></script>
- <script src="docgen-resources/main.min.js?1489402528979"></script>
- </div>
-<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="pgui_datamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_scalar.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_datamodel_basics" itemprop="headline">Basics</h1>
-</div></div><p>You have seen how to build a data-model in the <a href="pgui_quickstart.html">Getting Started</a> using the standard
- Java classes (<code class="inline-code">Map</code>, <code class="inline-code">String</code>,
- etc.). Internally, the variables available in the template are Java
- objects that implement the
- <code class="inline-code">freemarker.template.TemplateModel</code> interface. But
- you could use standard Java collections as variables in your
- data-model, because these were replaced with the appropriate
- <code class="inline-code">TemplateModel</code> instances behind the scenes. This
- facility is called <strong>object wrapping</strong>.
- The object wrapping facility can convert <em>any</em> kind
- of object transparently to the instances of classes that implement
- <code class="inline-code">TemplateModel</code> interface. This makes it possible,
- for example, to access <code class="inline-code">java.sql.ResultSet</code> as
- sequence variable in templates, or to access
- <code class="inline-code">javax.servlet.ServletRequest</code> objects as a hash
- variable that contains the request attributes, or even to traverse XML
- documents as FTL variables (<a href="xgui.html">see here</a>). To
- wrap (convert) these objects, however, you need to plug the proper
- <code class="inline-code">ObjectWrapper</code> implementation (possibly your custom
- implementation); this will be discussed <a href="pgui_datamodel_objectWrapper.html">later</a>. The point for now
- is that any object that you want to access from the templates, sooner
- or later must be converted to an object that implements
- <code class="inline-code">TemplateModel</code> interface. So first you should
- familiarize yourself with writing of <code class="inline-code">TemplateModel</code>
- implementations.</p><p>There is roughly one
- <code class="inline-code">freemarker.template.TemplateModel</code> descendant
- interface corresponding to each basic type of variable
- (<code class="inline-code">TemplateHashModel</code> for hashes,
- <code class="inline-code">TemplateSequenceModel</code> sequences,
- <code class="inline-code">TemplateNumberModel</code> for numbers, etc.). For
- example, if you want to expose a <code class="inline-code">java.sql.ResultSet</code>
- as a sequence for the templates, then you have to write a
- <code class="inline-code">TemplateSequenceModel</code> implementation that can read
- <code class="inline-code">java.sql.ResultSet</code>-s. We used to say on this, that
- you <em>wrap</em> the
- <code class="inline-code">java.sql.ResultSet</code> with your
- <code class="inline-code">TemplateModel</code> implementation, as basically you just
- encapsulate the <code class="inline-code">java.sql.ResultSet</code> to provide
- access to it with the common <code class="inline-code">TemplateSequenceModel</code>
- interface. Note that a class can implement multiple
- <code class="inline-code">TemplateModel</code> interfaces; this is why FTL variables
- can have multiple types (see: <a href="dgui_datamodel_basics.html">Template Author's Guide/Values, Types/Basics</a>)</p><p>Note that a trivial implementation of these interfaces is
- provided with the <code class="inline-code">freemarker.template</code> package. For
- example, to convert a <code class="inline-code">String</code> to FTL string
- variable, you can use <code class="inline-code">SimpleScalar</code>, to convert a
- <code class="inline-code">java.util.Map</code> to FTL hash variable, you can use
- <code class="inline-code">SimpleHash</code>, etc.</p><p>An easy way to try your own <code class="inline-code">TemplateModel</code>
- implementation, is to create an instance of that, and drop it directly
- into the data-model (as <code class="inline-code">put</code> it into the root hash).
- The object wrapper will expose it untouched for the template, as it
- already implements <code class="inline-code">TemplateModel</code>, so no conversion
- (wrapping) needed. (This trick is also useful in cases when you do not
- want the object wrapper to try to wrap (convert) a certain
- object.)</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_scalar.html"><span>Next</span></a></div></div></div></div> </div>
- </div>
-<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
-Last generated:
-<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
-<p class="copyright">
-� <span itemprop="copyrightYear">1999</span>\u20132017
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
-</div></div></div></body>
-</html>