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 2015/11/02 20:07:22 UTC

[1/2] incubator-freemarker-site git commit: Adding some of the freemarker.org content (until it's back online).

Repository: incubator-freemarker-site
Updated Branches:
  refs/heads/asf-site 54055e6e4 -> fd1caa91a


http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/1.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/1.gif b/docgen-resources/img/callouts/1.gif
new file mode 100644
index 0000000..0d66977
Binary files /dev/null and b/docgen-resources/img/callouts/1.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/10.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/10.gif b/docgen-resources/img/callouts/10.gif
new file mode 100644
index 0000000..fb50b06
Binary files /dev/null and b/docgen-resources/img/callouts/10.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/11.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/11.gif b/docgen-resources/img/callouts/11.gif
new file mode 100644
index 0000000..9f5dba4
Binary files /dev/null and b/docgen-resources/img/callouts/11.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/12.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/12.gif b/docgen-resources/img/callouts/12.gif
new file mode 100644
index 0000000..a373d0b
Binary files /dev/null and b/docgen-resources/img/callouts/12.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/13.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/13.gif b/docgen-resources/img/callouts/13.gif
new file mode 100644
index 0000000..b00b163
Binary files /dev/null and b/docgen-resources/img/callouts/13.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/14.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/14.gif b/docgen-resources/img/callouts/14.gif
new file mode 100644
index 0000000..6d6642e
Binary files /dev/null and b/docgen-resources/img/callouts/14.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/2.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/2.gif b/docgen-resources/img/callouts/2.gif
new file mode 100644
index 0000000..100ff79
Binary files /dev/null and b/docgen-resources/img/callouts/2.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/3.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/3.gif b/docgen-resources/img/callouts/3.gif
new file mode 100644
index 0000000..5008ca7
Binary files /dev/null and b/docgen-resources/img/callouts/3.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/4.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/4.gif b/docgen-resources/img/callouts/4.gif
new file mode 100644
index 0000000..0e5617d
Binary files /dev/null and b/docgen-resources/img/callouts/4.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/5.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/5.gif b/docgen-resources/img/callouts/5.gif
new file mode 100644
index 0000000..9bc75ad
Binary files /dev/null and b/docgen-resources/img/callouts/5.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/6.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/6.gif b/docgen-resources/img/callouts/6.gif
new file mode 100644
index 0000000..d396407
Binary files /dev/null and b/docgen-resources/img/callouts/6.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/7.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/7.gif b/docgen-resources/img/callouts/7.gif
new file mode 100644
index 0000000..c90b2f3
Binary files /dev/null and b/docgen-resources/img/callouts/7.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/8.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/8.gif b/docgen-resources/img/callouts/8.gif
new file mode 100644
index 0000000..6fe3287
Binary files /dev/null and b/docgen-resources/img/callouts/8.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/callouts/9.gif
----------------------------------------------------------------------
diff --git a/docgen-resources/img/callouts/9.gif b/docgen-resources/img/callouts/9.gif
new file mode 100644
index 0000000..bc5c812
Binary files /dev/null and b/docgen-resources/img/callouts/9.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/patterned-bg.png
----------------------------------------------------------------------
diff --git a/docgen-resources/img/patterned-bg.png b/docgen-resources/img/patterned-bg.png
new file mode 100644
index 0000000..a476f88
Binary files /dev/null and b/docgen-resources/img/patterned-bg.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/img/xxe.png
----------------------------------------------------------------------
diff --git a/docgen-resources/img/xxe.png b/docgen-resources/img/xxe.png
new file mode 100644
index 0000000..17b82aa
Binary files /dev/null and b/docgen-resources/img/xxe.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/main.js
----------------------------------------------------------------------
diff --git a/docgen-resources/main.js b/docgen-resources/main.js
new file mode 100644
index 0000000..3b10d5b
--- /dev/null
+++ b/docgen-resources/main.js
@@ -0,0 +1,214 @@
+/*eslint strict:0*/
+'use strict';
+
+(function(toc, breadcrumb) {
+
+  var LEVEL = 0;
+
+
+
+  function menuItemInnerHTML(nodeData) {
+    var isLink = nodeData.url != null; 
+    var a = document.createElement(isLink ? 'a' : 'span');
+
+    a.innerHTML = nodeData.title;
+    if (isLink) {
+      a.href = nodeData.url;
+    }
+    a.className = 'depth-' + LEVEL + '-link';
+
+    return a;
+  }
+
+  function keyboardNavigation(e) {
+    e.stopPropagation();
+
+    var node = e.target.parentNode;
+
+    // right arrow, wants to open node
+    if (e.which === 39) {
+      node.classList.remove('closed');
+      node.classList.add('open');
+    }
+    // left arrow, wants to close node
+    else if (e.which === 37) {
+      node.classList.add('closed');
+      node.classList.remove('open');
+    }
+  }
+
+  function checkIfLast(nodeData) {
+    if (!nodeData.children.length) {
+      return true;
+    } else {
+
+      // don't print out children if they are only anchors
+      for (var x = 0; x < nodeData.children.length; x++) {
+        if (nodeData.children[x].isFile) {
+          return false;
+        }
+      }
+
+      return true;
+    }
+  }
+
+  function menuClick(e) {
+    e.stopPropagation();
+
+    var node = e.target;
+
+    if (node.tagName.toUpperCase() === 'LI') {
+      node.classList.toggle('closed');
+      node.classList.toggle('open');
+    }
+  }
+
+  function menuChildren(children, depth, onPath) {
+
+    var ul = document.createElement('ul');
+    ul.classList.add('depth-' + LEVEL);
+
+    for (var x = 0; x < children.length; x++) {
+      var node = children[x];
+
+      var li = document.createElement('li');
+      var isLast = checkIfLast(node);
+
+      if (LEVEL === 0) {
+        li.classList.add('section');
+      }
+
+      // @todo: hide this until we can figure out a solution for search
+      if (node.title === 'Search') {
+        li.style.display = 'none';
+      }
+
+      li.addEventListener('click', menuClick);
+      li.addEventListener('keydown', keyboardNavigation);
+
+      // add menu link
+      li.appendChild(menuItemInnerHTML(node));
+
+      if (node.title === breadcrumb[depth + 1] && onPath) {
+
+        if (depth + 2 === breadcrumb.length) {
+          li.classList.add('current');
+        }
+
+        // 'section' is always open
+        if (LEVEL !== 0) {
+          li.classList.add('open');
+        }
+
+        depth++;
+
+      } else if (LEVEL > 0) {
+        li.classList.add('closed');
+      }
+
+      if (isLast) {
+
+        li.classList.add('last');
+
+        // @todo: add flags to docgen
+        if (typeof node.flags !== 'undefined') {
+          li.classList.add(node.flags.join(' '));
+        }
+      } else if (LEVEL > 0) {
+        // don't add for top level elements
+        li.classList.add('has-children');
+      }
+
+      if (!isLast) {
+        LEVEL++;
+
+        li.appendChild(menuChildren(node.children, depth, (node.title === breadcrumb[depth])));
+
+        LEVEL--;
+      }
+
+      ul.appendChild(li);
+    }
+
+    return ul;
+  }
+
+  function createMenu(data) {
+    var menuPlaceholder = document.getElementById('table-of-contents-wrapper');
+
+    var finishedToc = menuChildren(data.children, 0, true);
+    finishedToc.classList.add('table-of-contents');
+
+    menuPlaceholder.appendChild(finishedToc);
+  }
+
+  createMenu(toc);
+
+})(toc, breadcrumb);
+
+(function() {
+  function isAtTop(node) {
+    var nodeOffsetTop = node.offsetTop + node.offsetParent.offsetTop - 5;
+    var windowOffsetTop = window.pageYOffset;
+
+    // @todo: figure out why less than isn't working when they are equal
+    return (nodeOffsetTop === windowOffsetTop || nodeOffsetTop < windowOffsetTop);
+  }
+
+  // remove highlight class so animation can be repeated on same node again
+  function unHighlightNode(nodeId) {
+    var node = document.getElementById(nodeId);
+
+    if (node) {
+      node.classList.remove('active');
+    }
+  }
+
+  function highlightNode(nodeId) {
+    var node = document.getElementById(nodeId);
+
+    // wrap in a setTimeout so that window.scrollY is accurate when we poll it
+    window.setTimeout(function() {
+      if (node && !isAtTop(node)) {
+        node.classList.add('active');
+
+        window.setTimeout(function() {
+          unHighlightNode(nodeId);
+        }, 1000);
+      }
+    }, 1);
+  }
+
+  function onPageMenuClick(e) {
+    var node = e.target;
+
+    if (node.classList.contains('page-menu-link')) {
+      highlightNode(node.getAttribute('data-menu-target'));
+    }
+  }
+
+  function getNodeIdFromHash() {
+    if (window.location.hash) {
+      return window.location.hash.substring(1);
+    } else {
+      return '';
+    }
+  }
+
+  function onDocReady() {
+    var nodeId = getNodeIdFromHash();
+
+    if (nodeId !== '') {
+      highlightNode(nodeId);
+    }
+  }
+
+  function init() {
+    document.addEventListener('click', onPageMenuClick);
+    document.addEventListener('DOMContentLoaded', onDocReady);
+  }
+
+  init();
+
+})();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/main.min.js
----------------------------------------------------------------------
diff --git a/docgen-resources/main.min.js b/docgen-resources/main.min.js
new file mode 100644
index 0000000..b141fb3
--- /dev/null
+++ b/docgen-resources/main.min.js
@@ -0,0 +1 @@
+"use strict";!function(t,e){function n(t){var e=null!=t.url,n=document.createElement(e?"a":"span");return n.innerHTML=t.title,e&&(n.href=t.url),n.className="depth-"+c+"-link",n}function a(t){t.stopPropagation();var e=t.target.parentNode;39===t.which?(e.classList.remove("closed"),e.classList.add("open")):37===t.which&&(e.classList.add("closed"),e.classList.remove("open"))}function s(t){if(t.children.length){for(var e=0;e<t.children.length;e++)if(t.children[e].isFile)return!1;return!0}return!0}function i(t){t.stopPropagation();var e=t.target;"LI"===e.tagName.toUpperCase()&&(e.classList.toggle("closed"),e.classList.toggle("open"))}function d(t,o,l){var r=document.createElement("ul");r.classList.add("depth-"+c);for(var u=0;u<t.length;u++){var f=t[u],p=document.createElement("li"),h=s(f);0===c&&p.classList.add("section"),"Search"===f.title&&(p.style.display="none"),p.addEventListener("click",i),p.addEventListener("keydown",a),p.appendChild(n(f)),f.title===e[o+1]&&l?(o+2===e.length&&p.cla
 ssList.add("current"),0!==c&&p.classList.add("open"),o++):c>0&&p.classList.add("closed"),h?(p.classList.add("last"),"undefined"!=typeof f.flags&&p.classList.add(f.flags.join(" "))):c>0&&p.classList.add("has-children"),h||(c++,p.appendChild(d(f.children,o,f.title===e[o])),c--),r.appendChild(p)}return r}function o(t){var e=document.getElementById("table-of-contents-wrapper"),n=d(t.children,0,!0);n.classList.add("table-of-contents"),e.appendChild(n)}var c=0;o(t)}(toc,breadcrumb),function(){function t(t){var e=t.offsetTop+t.offsetParent.offsetTop-5,n=window.pageYOffset;return e===n||n>e}function e(t){var e=document.getElementById(t);e&&e.classList.remove("active")}function n(n){var a=document.getElementById(n);window.setTimeout(function(){a&&!t(a)&&(a.classList.add("active"),window.setTimeout(function(){e(n)},1e3))},1)}function a(t){var e=t.target;e.classList.contains("page-menu-link")&&n(e.getAttribute("data-menu-target"))}function s(){return window.location.hash?window.location.hash.s
 ubstring(1):""}function i(){var t=s();""!==t&&n(t)}function d(){document.addEventListener("click",a),document.addEventListener("DOMContentLoaded",i)}d()}();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/freemarkerdownload.html
----------------------------------------------------------------------
diff --git a/freemarkerdownload.html b/freemarkerdownload.html
new file mode 100644
index 0000000..566da8f
--- /dev/null
+++ b/freemarkerdownload.html
@@ -0,0 +1,198 @@
+<!doctype html>
+<html lang="en" class="page-type-chapter">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>Download / Maven - FreeMarker</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="FreeMarker">
+<meta property="og:title" content="Download / Maven">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/freemarkerdownload.html">
+<link rel="canoical" href="http://freemarker.org/freemarkerdownload.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">
+<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/">
+    <meta itemprop="name" content="FreeMarker">
+
+  <!--[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 class="current"><a href="index.html">Home</a></li><li><a href="docs/index.html">Manual</a></li><li><a class="external" href="docs/api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="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="freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div>    <div class="main-content site-width">
+      <div class="content-wrapper">
+  <div id="table-of-contents-wrapper" class="col-left">
+      <script>var breadcrumb = ["FreeMarker","Download / Maven"];</script>
+      <script src="toc.js"></script>
+      <script src="docgen-resources/main.min.js"></script>
+  </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="title-wrapper">
+<h1 class="content-header header-chapter" id="freemarkerdownload" itemprop="headline">Download / Maven</h1>
+</div></div><p><strong>Dependencies:</strong> FreeMarker has no
+    required dependencies, except Java (Standard Edition) itself, with the
+    minimum version indicated for each download below.</p><p><strong>Backward compatibility:</strong> Before
+    2.3.0 (2004), releases with different second version numbers (like 2.2.x
+    and 2.3.x) aren&#39;t fully compatible. The 2.3.x series is quite conservative
+    about backward compatibility; you should be able to replace the FreeMarker
+    binary (<code class="inline-code">freemarer.jar</code>) under your application with a
+    newer one without breaking anything (obviously, assuming that only public
+    FreeMarker API-s were used).</p><p><strong>Change log (version history):</strong>
+    <a href="docs/app_versions.html">See in the Manual...</a></p>
+      
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_4">Latest stable release: 2.3.23</h2>
+
+
+      <p>Released on 2015-07-05. Requires J2SE 1.4 or higher.</p>
+
+      <p><a href="http://sourceforge.net/projects/freemarker/files/freemarker/2.3.23/freemarker-2.3.23.tar.gz/download">Download
+      freemarker-2.3.23.tar.gz</a> (3.2 MB, includes binary, documentation
+      and source code)</p>
+
+      <p>For Maven:</p>
+
+      
+
+<div class="code-wrapper"><pre class="code-block code-unspecified">&lt;!--
+Attention: Be sure nothing pulls in an old dependency with groupId
+&quot;freemarker&quot; (without the &quot;org.&quot;), because then you will end up with
+two freemarker.jar-s and unpredictable behavior!
+--&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.freemarker&lt;/groupId&gt;
+  &lt;artifactId&gt;freemarker&lt;/artifactId&gt;
+  &lt;version&gt;2.3.23&lt;/version&gt;
+&lt;/dependency&gt;</pre></div>
+
+        <div class="callout note">
+    <strong class="callout-label">Note:</strong>
+
+        <p>Until about 2007 the Maven group name was
+        "freemarker" instead of "org.freemarker",
+        and as the XML comment above says, this can cause problems, as Maven
+        will see them as two independent artifacts with no version conflict.
+        If you run into this issue, find the <code class="inline-code">dependency</code>
+        that depends on the old FreeMarker, and insert
+        <code class="inline-code">&lt;exclusions&gt;&lt;exclusion&gt;&lt;groupId&gt;freemarker&lt;!--
+        Legacy org-less group
+        --&gt;&lt;/groupId&gt;&lt;artifactId&gt;freemarker&lt;/artifactId&gt;
+        &lt;/exclusion&gt;&lt;/exclusions&gt;</code> into it.</p>
+        </div>
+
+
+      <p>If you need to use FreeMarker on Google App Engine, <a href="http://sourceforge.net/projects/freemarker/files/freemarker/2.3.23/freemarker-gae-2.3.23.jar/download">download
+      the GAE-compatible binary too</a> (no documentation included in
+      this).</p>
+
+      
+
+<div class="code-wrapper"><pre class="code-block code-unspecified">&lt;dependency&gt;
+  &lt;groupId&gt;org.freemarker&lt;/groupId&gt;
+  &lt;artifactId&gt;freemarker-gae&lt;/artifactId&gt;
+  &lt;version&gt;2.3.23&lt;/version&gt;
+&lt;/dependency&gt;</pre></div>
+    
+      
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_5">Laster development (incomplete) version: 2.3.24-pre01</h2>
+
+
+      <p>Released on 2015-09-01. Requires J2SE 1.5 or higher.</p>
+
+      <p><a href="http://freemarker.org/builds/2.3.24-pre01/_html/versions_2_3_24.html">See
+      what&#39;s new...</a></p>
+
+      <p><a href="https://sourceforge.net/projects/freemarker/files/freemarker/2.3.24-preview-01/freemarker-2.3.24-pre01.tar.gz/download">Download
+      freemarker-2.3.24-pre01</a> (4 MB, includes binary, documentation and
+      source code)</p>
+
+      <p>If you need to use FreeMarker on Google App Engine, <a href="http://sourceforge.net/projects/freemarker/files/freemarker/2.3.24-preview-01/freemarker-gae-2.3.24-pre01.jar/download">download
+      the GAE-compatible binary too</a> (no documentation included in
+      this).</p>
+
+      <p>Maven artifact is not available for this development
+      release.</p>
+    
+      
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_6">2.2.8</h2>
+
+
+      <p>Released on 2004-06-15. This is the latest stable release of the
+      2.2 series. Requires J2SE 1.2 or higher.</p>
+
+      <p><a href="http://prdownloads.sourceforge.net/freemarker/freemarker-2.2.8.tar.gz">Download
+      freemarker-2.2.8.tar.gz</a> (1.4 MB)</p>
+    
+      
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_7">2.1.5</h2>
+
+
+      <p>Released on 2003-02-08. This is the latest stable release of the
+      2.1 series. Requires J2SE 1.3 or higher.</p>
+
+      <p><a href="http://prdownloads.sourceforge.net/freemarker/freemarker-2.1.5.tar.gz">Download
+      freemarker-2.1.5.tar.gz</a> (909 KB)</p>
+    
+      
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_8">2.0.3 (aka. 2.03)</h2>
+
+
+      <p>Released on 2002-06-12. The latest stable release of the 2.0
+      series. Requires J2SE 1.2 or higher.</p>
+
+      <p><a href="http://prdownloads.sourceforge.net/freemarker/freemarker2_03.tar.gz">Download
+      freemarker2_03.tar.gz</a> (617 KB)</p>
+    
+      
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_9">1.x</h2>
+
+
+      <p>The FreeMarker 1.x branch continues as separate project, called
+      FreeMarker Classic. See releases on the <a href="http://fm-classic.sourceforge.net/">FreeMarker Classic
+      homepage</a>!</p>
+    
+      
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_10">Other versions</h2>
+
+
+      <p>See the project&#39;s <a href="https://sourceforge.net/projects/freemarker/files/freemarker/">SourceForge
+      download page</a> for releases that are not featured on this download
+      page.</p>
+    </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="index.html">What is FreeMarker?</a></li><li><a href="freemarkerdownload.html">Download</a></li><li><a href="docs/app_versions.html">Version history</a></li><li><a href="history.html">About us</a></li><li><a itemprop="license" href="docs/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="docs/dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="docs/ref_directive_alphaidx.html">#directives</a></li><li><a href="docs/ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="docs/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/freem
 arker/">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="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/">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><span class="last-updated"> Last generated:
+<time itemprop="dateModified" datetime="2015-10-26T20:43:58Z" title="Monday, October 26, 2015 8:43:58 PM GMT">2015-10-26 20:43:58 GMT</time></span></p> <p class="copyright">
+© <span itemprop="copyrightYear">1999</span>–2015
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://freemarker.org">The FreeMarker Project</a>. All rights reserved. </p>
+</div></div></div></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/bullet_e0e0e0.png
----------------------------------------------------------------------
diff --git a/images/bullet_e0e0e0.png b/images/bullet_e0e0e0.png
new file mode 100644
index 0000000..dc9f6e0
Binary files /dev/null and b/images/bullet_e0e0e0.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/eclipse.png
----------------------------------------------------------------------
diff --git a/images/eclipse.png b/images/eclipse.png
new file mode 100644
index 0000000..3435c6e
Binary files /dev/null and b/images/eclipse.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/logo_e0e0e0.png
----------------------------------------------------------------------
diff --git a/images/logo_e0e0e0.png b/images/logo_e0e0e0.png
new file mode 100644
index 0000000..36b1a3b
Binary files /dev/null and b/images/logo_e0e0e0.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/none.gif
----------------------------------------------------------------------
diff --git a/images/none.gif b/images/none.gif
new file mode 100644
index 0000000..f191b28
Binary files /dev/null and b/images/none.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/osi-certified-120x100.png
----------------------------------------------------------------------
diff --git a/images/osi-certified-120x100.png b/images/osi-certified-120x100.png
new file mode 100644
index 0000000..ed60573
Binary files /dev/null and b/images/osi-certified-120x100.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/overview.png
----------------------------------------------------------------------
diff --git a/images/overview.png b/images/overview.png
new file mode 100644
index 0000000..b32e0bd
Binary files /dev/null and b/images/overview.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/poweredby_big_ffffff.png
----------------------------------------------------------------------
diff --git a/images/poweredby_big_ffffff.png b/images/poweredby_big_ffffff.png
new file mode 100644
index 0000000..3568610
Binary files /dev/null and b/images/poweredby_big_ffffff.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/poweredby_ffffff.png
----------------------------------------------------------------------
diff --git a/images/poweredby_ffffff.png b/images/poweredby_ffffff.png
new file mode 100644
index 0000000..22b3a80
Binary files /dev/null and b/images/poweredby_ffffff.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/poweredby_sq_bluespot.png
----------------------------------------------------------------------
diff --git a/images/poweredby_sq_bluespot.png b/images/poweredby_sq_bluespot.png
new file mode 100644
index 0000000..c8593fb
Binary files /dev/null and b/images/poweredby_sq_bluespot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/poweredby_sq_simple.png
----------------------------------------------------------------------
diff --git a/images/poweredby_sq_simple.png b/images/poweredby_sq_simple.png
new file mode 100644
index 0000000..c942269
Binary files /dev/null and b/images/poweredby_sq_simple.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/poweredby_sq_sunset.png
----------------------------------------------------------------------
diff --git a/images/poweredby_sq_sunset.png b/images/poweredby_sq_sunset.png
new file mode 100644
index 0000000..ac585a9
Binary files /dev/null and b/images/poweredby_sq_sunset.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/images/sflogo.png
----------------------------------------------------------------------
diff --git a/images/sflogo.png b/images/sflogo.png
new file mode 100644
index 0000000..b2a9e99
Binary files /dev/null and b/images/sflogo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/mailing-lists.html
----------------------------------------------------------------------
diff --git a/mailing-lists.html b/mailing-lists.html
new file mode 100644
index 0000000..d0e60c8
--- /dev/null
+++ b/mailing-lists.html
@@ -0,0 +1,96 @@
+<!doctype html>
+<html lang="en" class="page-type-section">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>Discuss on mailing lists - FreeMarker</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="FreeMarker">
+<meta property="og:title" content="Discuss on mailing lists">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/mailing-lists.html">
+<link rel="canoical" href="http://freemarker.org/mailing-lists.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">
+<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/">
+    <meta itemprop="name" content="FreeMarker">
+
+  <!--[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 class="current"><a href="index.html">Home</a></li><li><a href="docs/index.html">Manual</a></li><li><a class="external" href="docs/api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="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="freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div>    <div class="main-content site-width">
+      <div class="content-wrapper">
+  <div id="table-of-contents-wrapper" class="col-left">
+      <script>var breadcrumb = ["FreeMarker","Community","Discuss on mailing lists"];</script>
+      <script src="toc.js"></script>
+      <script src="docgen-resources/main.min.js"></script>
+  </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="title-wrapper">
+<h1 class="content-header header-section1" id="mailing-lists" itemprop="headline">Discuss on mailing lists</h1>
+</div></div><p>If you need help, you should ask on <a href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow with
+      "freemarker" tag</a>! To discuss deeper issues, feature
+      requests, and other FreeMarker-related topics, subscribe to the
+      developer mailing list!</p><p>The mailing lists (since 2015-09-03):</p><ul>
+        <li>
+          <p><strong>Developer list</strong>:
+          dev@freemarker.incubator.apache.org. <a href="mailto:dev-subscribe@freemarker.incubator.apache.org"><a href="mailto:dev-subscribe@freemarker.incubator.apache.org">Subscribe</a></a>,
+          <a href="mailto:dev-unsubscribe@freemarker.incubator.apache.org"><a href="mailto:dev-unsubscribe@freemarker.incubator.apache.org">Unsubscribe</a></a>
+          (After clicking on these links, send the appearing empty mail as
+          is.)</p>
+        </li>
+
+        <li>
+          <p><strong>Commit and Jira
+          notifications</strong>:
+          notifications@freemarker.incubator.apache.org. <a href="mailto:notifications-subscribe@freemarker.incubator.apache.org"><a href="mailto:notifications-subscribe@freemarker.incubator.apache.org">Subscribe</a></a>,
+          <a href="mailto:notifications-unsubscribe@freemarker.incubator.apache.org"><a href="mailto:notifications-unsubscribe@freemarker.incubator.apache.org">Unsubscribe</a></a>
+          (After clicking on these links, send the appearing empty mail as
+          is.)</p>
+        </li>
+      </ul><p>The above mailing lists are hosted by the Apache Software
+      Foundation. For more information about managing mailing lists, <a href="http://apache.org/foundation/mailinglists.html">see this
+      page...</a></p>
+        
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_23">Retired mailing lists</h2>
+
+
+        <p>These are the lists on sourceforge.net, which
+        <em>shouldn&#39;t be used anymore</em>.</p>
+
+        <p>Archives of <em>retired</em> lists:</p>
+
+        <ul>
+          <li>
+            <p><a href="http://news.gmane.org/gmane.comp.web.freemarker.user">freemarker-user@lists.sourceforge.net</a></p>
+          </li>
+
+          <li>
+            <p><a href="http://news.gmane.org/gmane.comp.web.freemarker.devel">freemarker-devel@lists.sourceforge.net</a></p>
+          </li>
+        </ul>
+
+        <p><a href="https://sourceforge.net/p/freemarker/mailman/">Manage
+        <em>retired</em> list subscriptions...</a></p>
+      </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="index.html">What is FreeMarker?</a></li><li><a href="freemarkerdownload.html">Download</a></li><li><a href="docs/app_versions.html">Version history</a></li><li><a href="history.html">About us</a></li><li><a itemprop="license" href="docs/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="docs/dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="docs/ref_directive_alphaidx.html">#directives</a></li><li><a href="docs/ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="docs/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/freem
 arker/">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="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/">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><span class="last-updated"> Last generated:
+<time itemprop="dateModified" datetime="2015-10-26T20:43:58Z" title="Monday, October 26, 2015 8:43:58 PM GMT">2015-10-26 20:43:58 GMT</time></span></p> <p class="copyright">
+© <span itemprop="copyrightYear">1999</span>–2015
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://freemarker.org">The FreeMarker Project</a>. All rights reserved. </p>
+</div></div></div></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/robots.txt
----------------------------------------------------------------------
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000..3e4ee38
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /builds

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/sourcecode.html
----------------------------------------------------------------------
diff --git a/sourcecode.html b/sourcecode.html
new file mode 100644
index 0000000..41ca8f2
--- /dev/null
+++ b/sourcecode.html
@@ -0,0 +1,109 @@
+<!doctype html>
+<html lang="en" class="page-type-section">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>Source code (Git) - FreeMarker</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="FreeMarker">
+<meta property="og:title" content="Source code (Git)">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/sourcecode.html">
+<link rel="canoical" href="http://freemarker.org/sourcecode.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">
+<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/">
+    <meta itemprop="name" content="FreeMarker">
+
+  <!--[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 class="current"><a href="index.html">Home</a></li><li><a href="docs/index.html">Manual</a></li><li><a class="external" href="docs/api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="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="freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div>    <div class="main-content site-width">
+      <div class="content-wrapper">
+  <div id="table-of-contents-wrapper" class="col-left">
+      <script>var breadcrumb = ["FreeMarker","Miscellaneous","Source code (Git)"];</script>
+      <script src="toc.js"></script>
+      <script src="docgen-resources/main.min.js"></script>
+  </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="title-wrapper">
+<h1 class="content-header header-section1" id="sourcecode" itemprop="headline">Source code (Git)</h1>
+</div></div><p>The key project repositories are at the Apache Software
+      Foundation, as part of the <a href="http://incubator.apache.org/">Apache Incubation</a>
+      effort. These Apache repositories are mirrored back to GitHub
+      (read-only), which is practical for sending patches via usual GitHub
+      forking and pull requests. The key repositories are:</p><ul>
+        <li>
+          <p><code class="inline-code">freemarker</code>: The engine itself (i.e.,
+          <code class="inline-code">freemarker.jar</code>) and the documentation. URL: <a href="https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git">https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git</a>.
+          GitHub mirror: <a href="https://github.com/apache/incubator-freemarker">https://github.com/apache/incubator-freemarker</a>.
+          Relevant branches (as of 2015-09-04):</p>
+
+          <ul>
+            <li>
+              <p><code class="inline-code">2.3-gae</code>: FreeMarker 2.3.x Google App
+              Engine compliant variant. <strong>Develop here by
+              default!</strong> This is where most developments are
+              committed, and are then merged into the other two branches
+              below.</p>
+            </li>
+
+            <li>
+              <p><code class="inline-code">2.3</code>: FreeMarker 2.3.x,
+              "normal" variant (this is what most users use). We
+              hardly ever commit into this directly, instead changes are
+              coming from<code class="inline-code">2.3-gae</code> via merging.</p>
+            </li>
+
+            <li>
+              <p><code class="inline-code">master</code>: FreeMarker 2.4.x. Had no
+              release as of this writing. This is <code class="inline-code">2.3-gae</code>
+              plus the changes that aren&#39;t 100% backward compatible. We only
+              commit 2.4-exclusive changes directly here, all other changes
+              are coming from <code class="inline-code">2.3-gae</code> via merging.</p>
+            </li>
+          </ul>
+        </li>
+
+        <li>
+          <p><code class="inline-code">freemarker-site</code>: Web site (freemarker.org)
+          contents. URL: <a href="https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git">https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git</a>.
+          GitHub mirror: <a href="https://github.com/apache/incubator-freemarker-site">https://github.com/apache/incubator-freemarker-site</a>.
+          Relevant branches: <code class="inline-code">master</code></p>
+        </li>
+
+        <li>
+          <p><code class="inline-code">freemarker-docgen</code>: DocBook transformation
+          used for generating both the FreeMarker Manual and the Web site.
+          URL: <a href="https://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen.git">https://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen.git</a>.
+          GitHub mirror: <a href="https://github.com/apache/incubator-freemarker-docgen">https://github.com/apache/incubator-freemarker-docgen</a>.
+          Relevant branches: <code class="inline-code">master</code></p>
+        </li>
+      </ul><p>There are some other FreeMarker-related repositories, such FMPP
+      and Tutorials, which you can only find on the <a href="https://github.com/freemarker/">old GitHub project</a> page, as they
+      aren&#39;t part of the ongoing Apache Incubation effort.</p><p><em>Disclaimer: Apache FreeMarker is an effort undergoing
+      incubation at The Apache Software Foundation (ASF). Incubation is
+      required of all newly accepted projects until a further review indicates
+      that the infrastructure, communications, and decision making process
+      have stabilized in a manner consistent with other successful ASF
+      projects. While incubation status is not necessarily a reflection of the
+      completeness or stability of the code, it does indicate that the project
+      has yet to be fully endorsed by the ASF.</em></p></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="index.html">What is FreeMarker?</a></li><li><a href="freemarkerdownload.html">Download</a></li><li><a href="docs/app_versions.html">Version history</a></li><li><a href="history.html">About us</a></li><li><a itemprop="license" href="docs/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="docs/dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="docs/ref_directive_alphaidx.html">#directives</a></li><li><a href="docs/ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="docs/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/freem
 arker/">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="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/">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><span class="last-updated"> Last generated:
+<time itemprop="dateModified" datetime="2015-10-26T20:43:58Z" title="Monday, October 26, 2015 8:43:58 PM GMT">2015-10-26 20:43:58 GMT</time></span></p> <p class="copyright">
+© <span itemprop="copyrightYear">1999</span>–2015
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://freemarker.org">The FreeMarker Project</a>. All rights reserved. </p>
+</div></div></div></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/test-bar.html
----------------------------------------------------------------------
diff --git a/test-bar.html b/test-bar.html
deleted file mode 100644
index d7f73ff..0000000
--- a/test-bar.html
+++ /dev/null
@@ -1 +0,0 @@
-Worked!
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/toc.js
----------------------------------------------------------------------
diff --git a/toc.js b/toc.js
new file mode 100644
index 0000000..207f4c8
--- /dev/null
+++ b/toc.js
@@ -0,0 +1,180 @@
+
+var toc = {
+"title": "FreeMarker",
+"url": null,
+"isFile": true,
+"children": [
+{
+"title": "What is FreeMarker?",
+"url": "index.html",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Download / Maven",
+"url": "freemarkerdownload.html",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Documentation",
+"url": null,
+"isFile": true,
+"children": [
+{
+"title": "Manual",
+"url": "docs/index.html",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Java API",
+"url": "docs/api/index.html",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Manual Chinese\n translation",
+"url": "https://sourceforge.net/projects/freemarker/files/chinese-manual/",
+"isFile": true,
+"children": [
+]
+}
+]
+}
+,
+{
+"title": "Tooling",
+"url": null,
+"isFile": true,
+"children": [
+{
+"title": "Editor / IDE plugins",
+"url": "editors.html",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Online template\n tester",
+"url": "http://freemarker-online.kenshoo.com/",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "File generator tool\n (FMPP)",
+"url": "http://fmpp.sourceforge.net/",
+"isFile": true,
+"children": [
+]
+}
+]
+}
+,
+{
+"title": "Community",
+"url": null,
+"isFile": true,
+"children": [
+{
+"title": "Report bugs",
+"url": "https://issues.apache.org/jira/browse/FREEMARKER/",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Bugs still in the old\n tracker",
+"url": "https://sourceforge.net/p/freemarker/bugs/new/",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Ask help on Stack\n Overflow",
+"url": "http://stackoverflow.com/questions/ask?tags=freemarker",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Get news on Twitter",
+"url": "https://twitter.com/freemarker",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Discuss on mailing lists",
+"url": "mailing-lists.html",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Who uses FreeMarker?",
+"url": "poweredBy.html",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Contributors wanted!",
+"url": "contribute.html",
+"isFile": true,
+"children": [
+]
+}
+]
+}
+,
+{
+"title": "Miscellaneous",
+"url": null,
+"isFile": true,
+"children": [
+{
+"title": "Sourceforge.net project\n page",
+"url": "https://sourceforge.net/projects/freemarker/",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Source code (Git)",
+"url": "sourcecode.html",
+"isFile": true,
+"children": [
+]
+}
+,
+{
+"title": "Project history",
+"url": "history.html",
+"isFile": true,
+"children": [
+]
+}
+]
+}
+]
+}
+;


[2/2] incubator-freemarker-site git commit: Adding some of the freemarker.org content (until it's back online).

Posted by dd...@apache.org.
Adding some of the freemarker.org content (until it's back online).


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

Branch: refs/heads/asf-site
Commit: fd1caa91a030d484f93b3bd5fc7a6f02484fe536
Parents: 54055e6
Author: ddekany <dd...@apache.org>
Authored: Mon Nov 2 20:06:54 2015 +0100
Committer: ddekany <dd...@apache.org>
Committed: Mon Nov 2 20:06:54 2015 +0100

----------------------------------------------------------------------
 LICENSE.txt                           |  236 +++++
 contribute.html                       |  204 +++++
 docgen-resources/docgen.css           | 1353 ++++++++++++++++++++++++++++
 docgen-resources/docgen.min.css       |    1 +
 docgen-resources/fonts/icomoon.eot    |  Bin 0 -> 4220 bytes
 docgen-resources/fonts/icomoon.svg    |   28 +
 docgen-resources/fonts/icomoon.ttf    |  Bin 0 -> 4056 bytes
 docgen-resources/fonts/icomoon.woff   |  Bin 0 -> 4132 bytes
 docgen-resources/img/callouts/1.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/10.gif  |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/11.gif  |  Bin 0 -> 244 bytes
 docgen-resources/img/callouts/12.gif  |  Bin 0 -> 244 bytes
 docgen-resources/img/callouts/13.gif  |  Bin 0 -> 244 bytes
 docgen-resources/img/callouts/14.gif  |  Bin 0 -> 244 bytes
 docgen-resources/img/callouts/2.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/3.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/4.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/5.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/6.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/7.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/8.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/callouts/9.gif   |  Bin 0 -> 968 bytes
 docgen-resources/img/patterned-bg.png |  Bin 0 -> 4565 bytes
 docgen-resources/img/xxe.png          |  Bin 0 -> 2649 bytes
 docgen-resources/main.js              |  214 +++++
 docgen-resources/main.min.js          |    1 +
 freemarkerdownload.html               |  198 ++++
 images/bullet_e0e0e0.png              |  Bin 0 -> 278 bytes
 images/eclipse.png                    |  Bin 0 -> 5732 bytes
 images/logo_e0e0e0.png                |  Bin 0 -> 3372 bytes
 images/none.gif                       |  Bin 0 -> 42 bytes
 images/osi-certified-120x100.png      |  Bin 0 -> 6991 bytes
 images/overview.png                   |  Bin 0 -> 11837 bytes
 images/poweredby_big_ffffff.png       |  Bin 0 -> 3686 bytes
 images/poweredby_ffffff.png           |  Bin 0 -> 2775 bytes
 images/poweredby_sq_bluespot.png      |  Bin 0 -> 2843 bytes
 images/poweredby_sq_simple.png        |  Bin 0 -> 1778 bytes
 images/poweredby_sq_sunset.png        |  Bin 0 -> 4318 bytes
 images/sflogo.png                     |  Bin 0 -> 2112 bytes
 mailing-lists.html                    |   96 ++
 robots.txt                            |    2 +
 sourcecode.html                       |  109 +++
 test-bar.html                         |    1 -
 toc.js                                |  180 ++++
 44 files changed, 2622 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/LICENSE.txt
----------------------------------------------------------------------
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..05c2d89
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,236 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+==============================================================================
+END LICENSE
+
+
+Files developed outside the FreeMarker project
+----------------------------------------------
+
+FreeMarker, both in its source code and binary form (freemarker.jar)
+includes a number of files that are licensed by the Apache Software
+Foundation under the Apache License, Version 2.0. This is the same
+license as the license of FreeMaker. These files are:
+  
+    freemarker/ext/jsp/web-app_2_2.dtd
+    freemarker/ext/jsp/web-app_2_3.dtd
+    freemarker/ext/jsp/web-jsptaglibrary_1_1.dtd
+    freemarker/ext/jsp/web-jsptaglibrary_1_2.dtd
+
+
+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.

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/contribute.html
----------------------------------------------------------------------
diff --git a/contribute.html b/contribute.html
new file mode 100644
index 0000000..421e6b6
--- /dev/null
+++ b/contribute.html
@@ -0,0 +1,204 @@
+<!doctype html>
+<html lang="en" class="page-type-section">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>Contributors wanted! - FreeMarker</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="FreeMarker">
+<meta property="og:title" content="Contributors wanted!">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/contribute.html">
+<link rel="canoical" href="http://freemarker.org/contribute.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">
+<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/">
+    <meta itemprop="name" content="FreeMarker">
+
+  <!--[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 class="current"><a href="index.html">Home</a></li><li><a href="docs/index.html">Manual</a></li><li><a class="external" href="docs/api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="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="freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div>    <div class="main-content site-width">
+      <div class="content-wrapper">
+  <div id="table-of-contents-wrapper" class="col-left">
+      <script>var breadcrumb = ["FreeMarker","Community","Contributors wanted!"];</script>
+      <script src="toc.js"></script>
+      <script src="docgen-resources/main.min.js"></script>
+  </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="title-wrapper">
+<h1 class="content-header header-section1" id="contribute" itemprop="headline">Contributors wanted!</h1>
+</div></div><p>Usually, contributors come because they want to fix/improve a
+      certain thing. But if you just want to help in general, here are some
+      topics that are not (that) hard to jump into and are considered to be
+      important:</p><ul>
+        <li>
+          <p>Tooling / desktop:</p>
+
+          <ul>
+            <li>
+              <p>Eclipse plugin. Either help improving the JBoss Tools
+              "FreeMarker IDE", or if you have serious ambitions,
+              even start your own!</p>
+            </li>
+
+            <li>
+              <p>IntelliJ plugin. Check how well it works (like support for
+              recent FreeMarker features), try to find a way to contribute
+              where needed.</p>
+            </li>
+
+            <li>
+              <p>Plugin or syntax highlighter for you favorite editor
+              (Notepad++, jEdit, VIM, etc.) that actually covers FTL
+              reasonably well, and is legally properly contributed to the
+              project.</p>
+            </li>
+          </ul>
+        </li>
+
+        <li>
+          <p>Tooling / online tools:</p>
+
+          <ul>
+            <li>
+              <p>Improve <a href="http://freemarker-online.kenshoo.com/">freemarker-online</a>, the
+              template tester page. For example, it should be REST service
+              with an AJAX based front-end, instead of the current full page
+              reloading one. Ultimately, we want to be able to embed the
+              tester into the Manual for trying the examples.</p>
+            </li>
+
+            <li>
+              <p>Online editor, syntax highlighter. This might means
+              FreeMarker support for CodeMirror. This, among others, would be
+              useful in the online template tester (see previous point)</p>
+            </li>
+          </ul>
+        </li>
+
+        <li>
+          <p>Improve framework integration:</p>
+
+          <ul>
+            <li>
+              <p>FreeMarker Spring MVC integration. Someone who know both
+              well should keep an eye on this, improving it where
+              necessary.</p>
+            </li>
+
+            <li>
+              <p>FreeMarker Struts integration. Same as with Spring
+              MVC.</p>
+            </li>
+          </ul>
+        </li>
+
+        <li>
+          <p>Android support. This is related to the next two points
+          too</p>
+        </li>
+
+        <li>
+          <p>Bean introspection without
+          <code class="inline-code">javax.bean.Introspector</code> (or in additionally to
+          it). FreeMarker relies on this class for maximum conformance to the
+          JavaBeans specs., however, its limitations start to hurt too much:
+          It doesn&#39;t work on Android, it doesn&#39;t support Java 8 default
+          methods, and it&#39;s not lenient enough in many cases (<code class="inline-code">Boolean
+          isXxx</code> doesn&#39;t work, <code class="inline-code">xFoo</code> is not a
+          possible property name of <code class="inline-code">getXFoo</code>, etc.), it
+          doesn&#39;t work with static methods
+          (<code class="inline-code">BeansWrapper.staticModels</code>).</p>
+        </li>
+
+        <li>
+          <p>Support for Java 8 date/time API-s (this is actually certainly
+          a difficult one)</p>
+        </li>
+
+        <li>
+          <p><code class="inline-code">javax.script</code> (JSR-223) support</p>
+        </li>
+
+        <li>
+          <p>Write <code class="inline-code">TemplateLoader</code> that loads from
+          database (<code class="inline-code">DataSource</code>)</p>
+        </li>
+
+        <li>
+          <p>Migrate build from Ant to Gradle. Or for Docgen an Site, Maven
+          is certainly a good fit.</p>
+        </li>
+
+        <li>
+          <p>Performance tests, to spot performance regressions.</p>
+        </li>
+      </ul><p>Continuous activities that are always welcome:</p><ul>
+        <li>
+          <p>Spotting mistakes in commits; more eyes see more</p>
+        </li>
+
+        <li>
+          <p>Trying to break new features (finding bugs)</p>
+        </li>
+
+        <li>
+          <p>Improve JUnit coverage where it&#39;s due</p>
+        </li>
+
+        <li>
+          <p>Fixing typos in the documentation (includes JavaDoc!)</p>
+        </li>
+
+        <li>
+          <p>Help users. This mostly means monitoring FreeMarker related
+          questions on Stack Overflow.</p>
+        </li>
+
+        <li>
+          <p>Pick a bug from the bug tracker, and squash it.</p>
+        </li>
+
+        <li>
+          <p>Recommend using FreeMarker to others when there&#39;s a fitting
+          task</p>
+        </li>
+      </ul><p>Last not least, FreeMarker needs long standing/returning
+      contributors who tackle deeper issues.</p>
+        
+
+
+
+<h2 class="content-header header-simplesect" id="autoid_27">What to do if I want to contribute</h2>
+
+
+        <p>First you should <a href="mailing-lists.html">subsrcribe to the
+        developer mailing list</a> to discuss what you plant to do. If you
+        are going to contribute to the engine itself, you will need an <a href="http://www.apache.org/dev/new-committers-guide.html#cla">Individual
+        Contributor License Agreement (ICLA) or Corporate CLA at the Apache
+        Software Foundation</a>.</p>
+
+        <p>Of course, you will also want to check the project out from the
+        source code repository, and build it. See here <a href="sourcecode.html">what to check out</a>. After checking
+        something out, see the <code class="inline-code">README</code> file in it for more
+        information about building and IDE setup.</p>
+      </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="index.html">What is FreeMarker?</a></li><li><a href="freemarkerdownload.html">Download</a></li><li><a href="docs/app_versions.html">Version history</a></li><li><a href="history.html">About us</a></li><li><a itemprop="license" href="docs/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="docs/dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="docs/ref_directive_alphaidx.html">#directives</a></li><li><a href="docs/ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="docs/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/freem
 arker/">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="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/">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><span class="last-updated"> Last generated:
+<time itemprop="dateModified" datetime="2015-10-26T20:43:58Z" title="Monday, October 26, 2015 8:43:58 PM GMT">2015-10-26 20:43:58 GMT</time></span></p> <p class="copyright">
+© <span itemprop="copyrightYear">1999</span>–2015
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://freemarker.org">The FreeMarker Project</a>. All rights reserved. </p>
+</div></div></div></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/docgen.css
----------------------------------------------------------------------
diff --git a/docgen-resources/docgen.css b/docgen-resources/docgen.css
new file mode 100644
index 0000000..95d1a69
--- /dev/null
+++ b/docgen-resources/docgen.css
@@ -0,0 +1,1353 @@
+@font-face {
+  font-family: 'icomoon';
+  src: url('fonts/icomoon.eot?-fbty7i');
+  src: url('fonts/icomoon.eot?#iefix-fbty7i') format('embedded-opentype'), url('fonts/icomoon.woff?-fbty7i') format('woff'), url('fonts/icomoon.ttf?-fbty7i') format('truetype'), url('fonts/icomoon.svg?-fbty7i#icomoon') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+html {
+  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
+  font-size: 14px;
+  color: #333333;
+  line-height: 1.5;
+  font-weight: normal;
+  background-color: #fff;
+  -webkit-text-size-adjust: 100%;
+  -ms-text-size-adjust: 100%;
+  text-size-adjust: 100%;
+  height: 100%;
+}
+body {
+  min-height: 100%;
+  margin: 0;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+  -webkit-flex-direction: column;
+  -ms-flex-direction: column;
+  flex-direction: column;
+}
+a {
+  color: #0050b2;
+  text-decoration: none;
+  -ms-touch-action: manipulation;
+  touch-action: manipulation;
+}
+a:hover {
+  color: #0973f5;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
+  line-height: 1.5;
+  font-weight: 500;
+  color: #0050b2;
+  word-break: break-word;
+}
+h1 {
+  font-size: 36px;
+}
+h2 {
+  font-size: 21px;
+}
+code,
+pre {
+  font-size: 13px;
+  font-family: "Droid Sans Mono", "Courier New", Courier, Monaco, Consolas, monospace;
+  -webkit-font-smoothing: antialiased;
+}
+code {
+  padding: 0 2px;
+  color: #C5351F;
+  word-break: break-word;
+}
+a > code {
+  color: #0050b2;
+}
+a:hover > code {
+  color: #0973f5;
+}
+pre {
+  display: block;
+  border: 0;
+  padding: 6px 12px;
+  margin: 0 0 9px;
+  overflow-x: auto;
+  word-break: normal;
+  white-space: pre;
+}
+@-moz-document url-prefix() {
+  pre {
+    white-space: pre-wrap;
+    word-break: break-all;
+  }
+}
+img {
+  border: 0;
+  vertical-align: middle;
+}
+fieldset {
+  margin: 0;
+  padding: 0;
+  border: 0;
+}
+input[type=search]::-webkit-search-cancel-button {
+  display: none;
+}
+table {
+  border: 0;
+  border-collapse: collapse;
+}
+td,
+th {
+  padding: 0;
+}
+.header-top-bg {
+  background-color: #0050b2;
+  background-image: -webkit-radial-gradient(50% 15px, circle, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 50%, #00276c 100%), url(img/patterned-bg.png);
+  background-image: radial-gradient(circle at 50% 15px, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 50%, #00276c 100%), url(img/patterned-bg.png);
+  box-shadow: 0 3px 9px #c1c1c1;
+  border-bottom: 3px solid #003270;
+  position: relative;
+  z-index: 2;
+}
+.header-top {
+  text-align: center;
+  padding: 12px 0;
+}
+@media (min-width: 568px) {
+  .header-top {
+    padding-bottom: 18px;
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-pack: start;
+    -webkit-justify-content: flex-start;
+    -ms-flex-pack: start;
+    justify-content: flex-start;
+    -webkit-flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    flex-wrap: wrap;
+    -webkit-box-align: end;
+    -webkit-align-items: flex-end;
+    -ms-flex-align: end;
+    align-items: flex-end;
+  }
+}
+.header-bottom-bg {
+  background-color: #efefef;
+  border-bottom: 1px solid #dedede;
+  box-shadow: 0 0 7px #eee;
+  position: relative;
+  z-index: 1;
+}
+.search-row {
+  padding-top: 12px;
+}
+@media (min-width: 568px) {
+  .search-row {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-pack: justify;
+    -webkit-justify-content: space-between;
+    -ms-flex-pack: justify;
+    justify-content: space-between;
+    -webkit-flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    flex-wrap: wrap;
+    -webkit-box-align: end;
+    -webkit-align-items: flex-end;
+    -ms-flex-align: end;
+    align-items: flex-end;
+  }
+}
+.search-row .navigation-header,
+.search-row .search-form {
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
+.search-row .navigation-header {
+  display: block;
+  font-size: 18px;
+  line-height: 1;
+  -webkit-box-flex: 1;
+  -webkit-flex: 1 1 auto;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+}
+@media (min-width: 568px) {
+  .search-row .navigation-header {
+    font-size: 27px;
+  }
+}
+@media (min-width: 768px) {
+  .search-row .navigation-header {
+    -webkit-box-flex: 0;
+    -webkit-flex-grow: 0;
+    -ms-flex-positive: 0;
+    flex-grow: 0;
+  }
+}
+.breadcrumb-row {
+  padding-top: 9px;
+  padding-bottom: 9px;
+}
+.search-row + .breadcrumb-row {
+  padding-top: 0;
+}
+@media (min-width: 568px) {
+  .breadcrumb-row {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-pack: justify;
+    -webkit-justify-content: space-between;
+    -ms-flex-pack: justify;
+    justify-content: space-between;
+    -webkit-flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    flex-wrap: wrap;
+    -webkit-box-align: end;
+    -webkit-align-items: flex-end;
+    -ms-flex-align: end;
+    align-items: flex-end;
+  }
+}
+.main-content {
+  -webkit-box-flex: 1;
+  -webkit-flex: 1 1 auto;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+  -webkit-flex-direction: column;
+  -ms-flex-direction: column;
+  flex-direction: column;
+}
+.content-wrapper {
+  -webkit-box-flex: 1;
+  -webkit-flex: 1 1 auto;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  padding-top: 18px;
+  padding-bottom: 18px;
+}
+@media (min-width: 768px) {
+  .content-wrapper {
+    padding-top: 30px;
+    padding-bottom: 48px;
+  }
+}
+.content-wrapper.no-toc {
+  display: block;
+}
+.content-wrapper .col-left {
+  -webkit-box-flex: 0;
+  -webkit-flex: 0 0 160px;
+  -ms-flex: 0 0 160px;
+  flex: 0 0 160px;
+  max-width: 160px;
+  margin-right: 18px;
+  display: none;
+}
+@media (min-width: 568px) {
+  .content-wrapper .col-left {
+    display: block;
+  }
+}
+@media (min-width: 768px) {
+  .content-wrapper .col-left {
+    -webkit-flex-basis: 210px;
+    -ms-flex-preferred-size: 210px;
+    flex-basis: 210px;
+    max-width: 210px;
+    margin-right: 48px;
+  }
+  .content-wrapper .col-left.expanded {
+    max-width: 100%;
+  }
+}
+.content-wrapper .col-right {
+  -webkit-box-flex: 1;
+  -webkit-flex: 1;
+  -ms-flex: 1;
+  flex: 1;
+  position: relative;
+}
+@media (min-width: 768px) {
+  .page-content {
+    padding-bottom: 42px;
+  }
+}
+.page-content a {
+  word-break: break-word;
+}
+.page-content .page-title {
+  border-bottom: 1px solid #eeeeee;
+  padding-bottom: 12px;
+  margin-bottom: 12px;
+  /* The Google results already adds some borders and is mostly empty at the top */
+}
+.page-type-docgen-search-results .page-content .page-title {
+  border: none;
+  padding-bottom: 0;
+  margin-bottom: 0;
+}
+@media (min-width: 768px) {
+  .page-content .page-title {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+  }
+}
+@media (min-width: 768px) {
+  .page-content .page-title {
+    padding-bottom: 24px;
+    margin-bottom: 24px;
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-pack: justify;
+    -webkit-justify-content: space-between;
+    -ms-flex-pack: justify;
+    justify-content: space-between;
+    -webkit-box-align: baseline;
+    -webkit-align-items: baseline;
+    -ms-flex-align: baseline;
+    align-items: baseline;
+    -webkit-flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    flex-wrap: wrap;
+  }
+}
+.page-content .page-title .title-wrapper {
+  -webkit-box-flex: 1;
+  -webkit-flex: 1;
+  -ms-flex: 1;
+  flex: 1;
+}
+.page-content .page-title h1 {
+  margin: 0;
+  font-size: 24px;
+}
+@media (min-width: 768px) {
+  .page-content .page-title h1 {
+    font-size: 30px;
+  }
+}
+.page-content .page-title .subtitle {
+  display: block;
+  font-size: 14px;
+}
+@media (min-width: 768px) {
+  .page-content .page-title .subtitle {
+    font-size: 18px;
+  }
+}
+@media (min-width: 992px) {
+  .page-content .page-title .subtitle {
+    font-size: 24px;
+  }
+}
+.page-content .content-header::before {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  content: "\f1dd";
+  margin-left: -18px;
+  margin-top: 2px;
+  width: 18px;
+  font-weight: normal;
+  font-size: 18px;
+  color: #C82222;
+  float: left;
+  visibility: hidden;
+}
+@media (min-width: 768px) {
+  .page-content .content-header::before {
+    margin-left: -24px;
+  }
+}
+.page-content .active::before {
+  -webkit-animation: header-pulse 0.3s 3 steps(2, end);
+  animation: header-pulse 0.3s 3 steps(2, end);
+}
+@-webkit-keyframes header-pulse {
+  0% {
+    visibility: hidden;
+  }
+  100% {
+    visibility: visible;
+  }
+}
+@keyframes header-pulse {
+  0% {
+    visibility: hidden;
+  }
+  100% {
+    visibility: visible;
+  }
+}
+.site-footer {
+  border-top: 3px solid #003270;
+  background-color: #0050b2;
+  background-image: -webkit-radial-gradient(50% -50px, ellipse, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 24%, #000c3b 86%, #000c3b 100%), url(img/patterned-bg.png);
+  background-image: radial-gradient(ellipse at 50% -50px, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 24%, #000c3b 86%, #000c3b 100%), url(img/patterned-bg.png);
+  font-weight: 300;
+  color: #fff;
+}
+.site-footer a {
+  color: #fff;
+}
+.site-footer a:hover {
+  color: rgba(255, 255, 255, 0.8);
+}
+@media (min-width: 568px) {
+  .footer-top {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    flex-wrap: wrap;
+    -webkit-box-pack: start;
+    -webkit-justify-content: flex-start;
+    -ms-flex-pack: start;
+    justify-content: flex-start;
+  }
+}
+@media (min-width: 992px) {
+  .footer-top {
+    -webkit-box-pack: justify;
+    -webkit-justify-content: space-between;
+    -ms-flex-pack: justify;
+    justify-content: space-between;
+  }
+}
+.footer-top .col-left {
+  -webkit-box-flex: 1;
+  -webkit-flex: 1 1 auto;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+}
+.footer-top .col-right {
+  padding-top: 12px;
+  padding-bottom: 12px;
+  -webkit-box-flex: 1;
+  -webkit-flex: 1 0 auto;
+  -ms-flex: 1 0 auto;
+  flex: 1 0 auto;
+}
+@media (min-width: 992px) {
+  .footer-top .col-right {
+    padding-top: 24px;
+  }
+}
+@media (min-width: 768px) {
+  .footer-top .col-right {
+    text-align: right;
+  }
+}
+@media (min-width: 568px) {
+  .sitemap {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    flex-wrap: wrap;
+  }
+}
+.sitemap .column {
+  padding-top: 12px;
+  padding-bottom: 12px;
+  margin-right: 12px;
+  -webkit-box-flex: 0;
+  -webkit-flex: 0 1 auto;
+  -ms-flex: 0 1 auto;
+  flex: 0 1 auto;
+}
+@media (min-width: 992px) {
+  .sitemap .column {
+    padding-top: 24px;
+  }
+}
+.sitemap .column:last-child {
+  margin-right: 0;
+}
+@media (min-width: 768px) {
+  .sitemap .column {
+    margin-right: 54px;
+  }
+}
+.sitemap .column .column-header {
+  color: #fff;
+  border-bottom: 2px solid #4c76ab;
+  margin: 0 0 6px;
+  padding-bottom: 6px;
+  font-weight: 400;
+}
+.sitemap .column ul {
+  padding: 0;
+  margin: 0;
+  list-style-type: none;
+}
+.sitemap .column a {
+  padding-right: 9px;
+  display: block;
+}
+.xxe {
+  display: inline-block;
+  width: 110px;
+  height: 34px;
+  margin-top: 15px;
+  background: #ffffff url(img/xxe.png) 50% no-repeat;
+  border: 1px solid #002254;
+}
+.xxe span {
+  display: none;
+}
+.footer-bottom {
+  padding: 45px 0 30px;
+}
+@media (min-width: 768px) {
+  .footer-bottom {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-pack: justify;
+    -webkit-justify-content: space-between;
+    -ms-flex-pack: justify;
+    justify-content: space-between;
+    -webkit-flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    flex-wrap: wrap;
+  }
+}
+.footer-bottom p {
+  margin: 0 0 6px;
+  -webkit-flex: 0 1 auto;
+  -ms-flex: 0 1 auto;
+  flex: 0 1 auto;
+  -webkit-box-flex: 1;
+}
+.footer-bottom .generated-for-product {
+  font-size: 12px;
+  display: block;
+}
+.footer-bottom .last-updated {
+  font-size: 12px;
+  display: block;
+}
+.logo {
+  padding: 6px 0 0;
+  display: block;
+}
+.logo img {
+  display: block;
+  margin: 0 auto;
+  width: 204px;
+  height: 19px;
+}
+.tabs {
+  list-style-type: none;
+  margin: 0;
+  padding: 6px 0 0;
+  text-align: center;
+  font-weight: 300;
+}
+@media (min-width: 568px) {
+  .tabs {
+    margin-left: 24px;
+    -webkit-box-flex: 0;
+    -webkit-flex: 0 0 auto;
+    -ms-flex: 0 0 auto;
+    flex: 0 0 auto;
+    padding-top: 0;
+  }
+}
+.tabs li {
+  display: inline-block;
+}
+.tabs li.current a {
+  color: #fff;
+  font-weight: 400;
+}
+.tabs li::after,
+.secondary-tabs li::after {
+  width: 1px;
+  background-color: #96a5b8;
+  height: 9px;
+  display: inline-block;
+  content: '';
+  margin: 0 15px;
+}
+.tabs li:last-child::after,
+.secondary-tabs li:last-child::after {
+  display: none;
+}
+.tabs li a,
+.secondary-tabs .tab {
+  color: #c9dbf1;
+}
+.tabs li a:hover,
+.secondary-tabs li a:hover {
+  color: #fff;
+}
+.secondary-tabs {
+  margin: 0;
+  list-style-type: none;
+  padding: 6px 0 0;
+  display: none;
+  text-align: center;
+}
+@media (min-width: 768px) {
+  .secondary-tabs {
+    display: block;
+    text-align: right;
+    -webkit-box-flex: 1;
+    -webkit-flex: 1 0 auto;
+    -ms-flex: 1 0 auto;
+    flex: 1 0 auto;
+  }
+}
+.secondary-tabs li {
+  display: inline-block;
+}
+.secondary-tabs li:last-child {
+  margin-right: 0;
+}
+.secondary-tabs li a:hover strong {
+  border-bottom-color: transparent;
+}
+.secondary-tabs .tab::before {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  width: 18px;
+  height: 18px;
+  display: inline-block;
+  font-size: 12px;
+  text-align: center;
+}
+@media (min-width: 992px) {
+  .secondary-tabs .tab::before {
+    padding-right: 6px;
+  }
+}
+.secondary-tabs .tab.icon-heart::before {
+  content: "\e609";
+}
+.secondary-tabs .tab.icon-star::before {
+  content: "\e608";
+}
+.secondary-tabs .tab.icon-bug::before {
+  content: "\f188";
+}
+.secondary-tabs .tab.icon-download::before {
+  content: "\e606";
+}
+.secondary-tabs .tab strong {
+  font-weight: normal;
+  border-bottom: 1px solid #8fafd7;
+}
+.secondary-tabs .tab span {
+  display: none;
+}
+@media (min-width: 992px) {
+  .secondary-tabs .tab span {
+    display: inline;
+  }
+}
+.breadcrumb {
+  list-style-type: none;
+  margin: 0;
+  padding: 6px 0 0 0;
+  font-size: 12px;
+  display: block;
+  white-space: nowrap;
+  overflow: hidden;
+}
+@media (min-width: 768px) {
+  .breadcrumb {
+    font-size: 13px;
+  }
+}
+.breadcrumb li {
+  display: inline-block;
+}
+.breadcrumb li::after {
+  content: '/';
+  color: #979797;
+  margin: 0 3px;
+}
+@media (min-width: 768px) {
+  .breadcrumb li::after {
+    margin: 0 6px;
+  }
+}
+.breadcrumb li:last-child a {
+  color: #333333;
+}
+.breadcrumb li:last-child::after {
+  display: none;
+}
+.breadcrumb li.step-0 a::after {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  content: "\e60a";
+  display: inline-block;
+  width: 14px;
+  height: 14px;
+  font-size: 12px;
+  position: relative;
+  top: 1px;
+}
+.breadcrumb li.step-0 a span {
+  display: none;
+}
+.table-of-contents {
+  list-style-type: none;
+  padding: 0;
+  margin: 6px 0 0;
+  font-size: 12px;
+}
+@media (min-width: 768px) {
+  .table-of-contents {
+    margin-top: 12px;
+    font-size: 13px;
+  }
+}
+.table-of-contents .current::before {
+  color: #0973f5;
+}
+.table-of-contents .current > a:first-child {
+  color: #0973f5;
+}
+.table-of-contents ul {
+  list-style-type: none;
+}
+.section {
+  border-bottom: 1px solid #eeeeee;
+  margin-bottom: 12px;
+  padding-bottom: 12px;
+}
+@media (min-width: 768px) {
+  .section {
+    margin-bottom: 24px;
+    padding-bottom: 24px;
+  }
+}
+.section.last {
+  border-bottom: 0;
+  margin-bottom: 0;
+}
+.section.last .depth-0-link {
+  margin-bottom: 0;
+}
+.depth-0-link {
+  color: #0050b2;
+  text-transform: uppercase;
+  font-weight: 400;
+  display: block;
+  line-height: 1;
+  margin-bottom: 12px;
+}
+@media (min-width: 768px) {
+  .depth-0-link {
+    margin-bottom: 24px;
+  }
+}
+a.depth-0-link:hover {
+  color: #0973f5;
+}
+.depth-1 {
+  margin: 0;
+  padding: 0;
+}
+.depth-1 li {
+  padding-left: 14px;
+  position: relative;
+}
+.depth-1 li::before {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  content: "\e602";
+  width: 14px;
+  height: 14px;
+  display: block;
+  position: absolute;
+  left: -3px;
+  top: 2px;
+  font-size: 14px;
+  line-height: 1;
+}
+.depth-1 li.has-children::before {
+  content: "\e600";
+  font-size: 13px;
+  cursor: pointer;
+}
+.depth-1 li.has-children.open::before {
+  content: "\e601";
+  font-size: 13px;
+}
+.depth-1 li.has-children .last::before {
+  content: "\e602";
+  top: 3px;
+}
+.depth-1 a {
+  display: block;
+  color: #444;
+}
+.depth-1 a:hover {
+  color: #888;
+}
+.depth-2 {
+  margin: 0;
+  padding: 0;
+}
+.closed ul {
+  display: none;
+}
+.open ul {
+  display: block;
+}
+.page-menu {
+  margin: 0 0 12px;
+  padding: 0 0 12px 18px;
+  border-bottom: 1px solid #eeeeee;
+}
+.page-menu .page-menu-title {
+  margin-top: 0;
+  margin-bottom: 1em;
+  color: #0050b2;
+  font-weight: bold;
+}
+@media (min-width: 768px) {
+  .page-menu {
+    margin-bottom: 24px;
+    margin-top: -12px;
+  }
+}
+.page-menu ul {
+  margin: 0 0 0 18px;
+  padding: 0;
+}
+.page-menu a:visited {
+  color: #800080;
+}
+.search-form {
+  -webkit-box-flex: 1;
+  -webkit-flex: 1 1 auto;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  height: 26px;
+  width: 100%;
+  display: inline-block;
+}
+.search-form.offline {
+  display: none;
+}
+@media (min-width: 768px) {
+  .search-form {
+    max-width: 300px;
+  }
+}
+.search-form fieldset {
+  height: 26px;
+}
+.search-form .search-btn {
+  color: #0050b2;
+  line-height: 1;
+  background-color: #fff;
+  background-image: none;
+  border: 0;
+  border-radius: 0;
+  padding: 0 3px;
+  width: 26px;
+  height: 24px;
+  position: relative;
+  top: -25px;
+  float: right;
+  right: 1px;
+}
+.search-form .search-btn:hover,
+.search-form .search-btn:focus {
+  color: #4c9cff;
+  cursor: pointer;
+  outline: 0;
+}
+.search-form .search-btn::before {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  content: "\f002";
+  box-sizing: border-box;
+  font-size: 16px;
+  width: 18px;
+  height: 18px;
+  display: block;
+}
+.search-form .search-input {
+  -webkit-appearance: none;
+  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
+  background-image: none;
+  background: #fff;
+  font-size: 16px;
+  line-height: 21px;
+  border: 1px solid #aec0d6;
+  border-radius: 0;
+  box-sizing: border-box;
+  padding: 3px 24px 3px 9px;
+  height: 26px;
+  width: 100%;
+  -webkit-transition: border-color 0.2s ease-in;
+  transition: border-color 0.2s ease-in;
+}
+.search-form .search-input::-moz-placeholder {
+  color: #0050b2;
+  opacity: 0.6;
+  font-size: 14px;
+}
+.search-form .search-input:-ms-input-placeholder {
+  color: #0050b2;
+  font-size: 14px;
+  line-height: 21px;
+}
+.search-form .search-input::-webkit-input-placeholder {
+  color: #0050b2;
+  opacity: 0.6;
+  font-size: 14px;
+}
+.search-form .search-input:focus {
+  outline: 0;
+  border-color: #0050b2;
+}
+.search-results .gsc-control-cse {
+  padding: 0;
+}
+.search-results .gs-title,
+.search-results .gs-title * {
+  color: #0050b2 !important;
+  text-decoration: none !important;
+}
+.search-results .gs-title:hover,
+.search-results .gs-title *:hover {
+  color: #0973f5 !important;
+}
+.bottom-pagers-wrapper::before,
+.bottom-pagers-wrapper::after {
+  content: " ";
+  display: table;
+}
+.bottom-pagers-wrapper::after {
+  clear: both;
+}
+@media (min-width: 768px) {
+  .bottom-pagers-wrapper {
+    position: absolute;
+    bottom: 0;
+    right: 0;
+  }
+}
+.pagers {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  white-space: nowrap;
+}
+@media (min-width: 768px) {
+  .pagers {
+    float: right;
+    font-size: 14px;
+  }
+}
+.pagers.top {
+  -webkit-box-ordinal-group: 2;
+  -webkit-order: 1;
+  -ms-flex-order: 1;
+  order: 1;
+  margin-bottom: 6px;
+}
+@media (min-width: 768px) {
+  .pagers.top {
+    margin-left: 12px;
+    margin-bottom: 0;
+  }
+}
+.paging-arrow {
+  -webkit-box-flex: 1;
+  -webkit-flex: 1 0 auto;
+  -ms-flex: 1 0 auto;
+  flex: 1 0 auto;
+  word-break: normal;
+}
+.paging-arrow::before {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  display: block;
+  line-height: 21px;
+  vertical-align: middle;
+  width: 17px;
+}
+@media (min-width: 568px) {
+  .paging-arrow.previous {
+    margin-right: 12px;
+  }
+}
+.paging-arrow.previous::before {
+  content: "\f190";
+  padding-right: 3px;
+  float: left;
+}
+.paging-arrow.next {
+  text-align: right;
+}
+.paging-arrow.next::before {
+  content: "\f18e";
+  padding-left: 3px;
+  float: right;
+}
+.bookmarks {
+  text-align: right;
+  display: none;
+}
+@media (min-width: 992px) {
+  .bookmarks {
+    display: block;
+  }
+}
+.bookmarks::before {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  content: "\e607";
+  width: 14px;
+  height: 14px;
+  display: inline-block;
+  position: relative;
+  top: 2px;
+  margin-right: 1px;
+  color: #0050b2;
+}
+.bookmarks ul {
+  list-style-type: none;
+  margin: 0;
+  padding: 0;
+  display: inline-block;
+  font-size: 13px;
+}
+.bookmarks ul li {
+  display: inline-block;
+}
+.bookmarks ul li::after {
+  content: ",";
+  display: inline-block;
+  margin: 0 3px 0 0;
+}
+.bookmarks ul li:last-child::after {
+  display: none;
+}
+.callout {
+  padding: 15px 18px;
+  margin: 12px 0;
+  border-left: 4px solid #eee;
+  background-color: #f9f9f9;
+  max-width: 600px;
+}
+.callout.note {
+  border-left-color: #A181AE;
+  background-color: #F9F2FA;
+}
+.callout.note .callout-label {
+  color: #7D578C;
+}
+.callout.warning {
+  border-left-color: #EDBABA;
+  background-color: #FCEAEA;
+}
+.callout.warning .callout-label {
+  color: #900;
+}
+.callout p:first-of-type {
+  margin-top: 3px;
+}
+.callout p:last-child {
+  margin-bottom: 0;
+}
+.callout-label {
+  display: block;
+  padding-bottom: 3px;
+}
+.callout-label::before {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  font-size: 12px;
+}
+.note .callout-label::before {
+  content: "\e605";
+  margin-right: 3px;
+}
+.warning .callout-label::before {
+  content: "\e604";
+  font-size: 14px;
+  margin-right: 6px;
+}
+.marked-text {
+  background-color: #AEDDFF;
+}
+.marked-interpolation {
+  background-color: #FFC070;
+}
+.marked-ftl-tag {
+  background-color: #FFEE6B;
+}
+.marked-comment {
+  background-color: #5CFF6A;
+}
+.marked-template {
+  background-color: #e4e4e4;
+}
+.marked-data-model {
+  background-color: #D2E2EF;
+}
+.marked-output {
+  background-color: #D5EAD7;
+}
+.marked-invisible-text {
+  opacity: 0.33;
+}
+.marked-for-programmers {
+  color: #333399;
+  font-style: italic;
+}
+.code-color {
+  color: #f00;
+}
+.code-block {
+  border: 0;
+  position: relative;
+  padding: 3px 6px 4px;
+  margin: 12px 0;
+  background-color: #f4f4f4;
+  /*
+  &.code-unspecified {
+    // Same as default for now
+  }
+  */
+}
+@media (min-width: 992px) {
+  .code-block {
+    display: inline-block;
+    min-width: 600px;
+    margin: 0;
+  }
+  ul .code-block {
+    min-width: 300px;
+    display: block;
+  }
+}
+.callout .code-block {
+  background-color: transparent !important;
+  padding: 0 !important;
+  margin: 0 !important;
+}
+.callout .code-block::after {
+  display: none !important;
+}
+.code-block.code-template {
+  background-color: #f4f4f4;
+  padding-top: 23px;
+}
+.code-block.code-template::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  left: 0;
+  padding: 3px 9px;
+  font-size: 10px;
+  font-weight: bold;
+  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
+  text-transform: uppercase;
+  color: rgba(94, 94, 94, 0.8);
+  background-color: #e4e4e4;
+  content: "Template";
+}
+.code-block.code-data-model {
+  background-color: #ecf3f8;
+  padding-top: 23px;
+}
+.code-block.code-data-model::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  left: 0;
+  padding: 3px 9px;
+  font-size: 10px;
+  font-weight: bold;
+  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
+  text-transform: uppercase;
+  color: rgba(94, 94, 94, 0.8);
+  background-color: #D2E2EF;
+  content: "Data Model";
+}
+.code-block.code-output {
+  background-color: #ECF8EE;
+  padding-top: 23px;
+}
+.code-block.code-output::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  left: 0;
+  padding: 3px 9px;
+  font-size: 10px;
+  font-weight: bold;
+  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
+  text-transform: uppercase;
+  color: rgba(94, 94, 94, 0.8);
+  background-color: #D5EAD7;
+  content: "Output";
+}
+.table-responsive {
+  min-height: .01%;
+  overflow-x: auto;
+}
+@media (max-width: 767px) {
+  .table-responsive {
+    width: 100%;
+    margin-bottom: 15px;
+    overflow-y: hidden;
+    -ms-overflow-style: -ms-autohiding-scrollbar;
+  }
+}
+.table {
+  background-color: transparent;
+  border-spacing: 0;
+  border-collapse: collapse;
+  border: 1px solid #ddd;
+  width: 100%;
+  max-width: 100%;
+}
+.table th {
+  font-weight: 500;
+  text-align: left;
+  background-color: #f9f9f9;
+  border-bottom: 1px solid #ddd;
+  white-space: nowrap;
+}
+.table th,
+.table td {
+  padding: 3px 6px;
+  border: 1px solid #ddd;
+  vertical-align: top;
+}
+.table td {
+  white-space: nowrap;
+}
+@media (min-width: 992px) {
+  .table td {
+    white-space: normal;
+  }
+}
+.table a {
+  word-break: normal;
+}
+.social-icons {
+  margin: 0;
+  padding: 0;
+  list-style-type: none;
+}
+.social-icons li {
+  display: inline-block;
+  margin-right: 18px;
+}
+.social-icons li:last-child {
+  margin-right: 0;
+}
+.social-icons li a::before {
+  font-family: 'icomoon';
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  width: 14px;
+  height: 22px;
+  display: inline-block;
+  padding-right: 3px;
+}
+.social-icons li .github::before {
+  content: "\f09b";
+}
+.social-icons li .twitter::before {
+  content: "\f099";
+}
+.social-icons li .stack-overflow::before {
+  content: "\f16c";
+}
+.site-width {
+  margin-left: auto;
+  margin-right: auto;
+  padding-left: 18px;
+  padding-right: 18px;
+}
+@media (min-width: 768px) {
+  .site-width {
+    padding-left: 24px;
+    padding-right: 24px;
+    width: 700px;
+  }
+}
+@media (min-width: 992px) {
+  .site-width {
+    width: 924px;
+  }
+}
+@media (min-width: 1200px) {
+  .site-width {
+    width: 1132px;
+  }
+}
+.sr-only {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  margin: -1px;
+  padding: 0;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  border: 0;
+}
+.center-img {
+  text-align: center;
+}
+.center-img img {
+  max-width: 100%;
+}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/docgen.min.css
----------------------------------------------------------------------
diff --git a/docgen-resources/docgen.min.css b/docgen-resources/docgen.min.css
new file mode 100644
index 0000000..0179fc0
--- /dev/null
+++ b/docgen-resources/docgen.min.css
@@ -0,0 +1 @@
+@font-face{font-family:icomoon;src:url(fonts/icomoon.eot?-fbty7i);src:url(fonts/icomoon.eot?#iefix-fbty7i) format('embedded-opentype'),url(fonts/icomoon.woff?-fbty7i) format('woff'),url(fonts/icomoon.ttf?-fbty7i) format('truetype'),url(fonts/icomoon.svg?-fbty7i#icomoon) format('svg');font-weight:400;font-style:normal}html{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;font-size:14px;color:#333;line-height:1.5;font-weight:400;background-color:#fff;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;height:100%}body{min-height:100%;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}a{color:#0050b2;text-decoration:none;-ms-touch-action:manipulation;touch-action:manipulation}a:hover{color:#0973f5}h1,h2,h3,h4,h5,h6{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.5;font-weig
 ht:500;color:#0050b2;word-break:break-word}h1{font-size:36px}h2{font-size:21px}code,pre{font-size:13px;font-family:"Droid Sans Mono","Courier New",Courier,Monaco,Consolas,monospace;-webkit-font-smoothing:antialiased}code{padding:0 2px;color:#C5351F;word-break:break-word}a>code{color:#0050b2}a:hover>code{color:#0973f5}pre{display:block;border:0;padding:6px 9pt;margin:0 0 9px;overflow-x:auto;word-break:normal;white-space:pre}@-moz-document url-prefix(){pre{white-space:pre-wrap;word-break:break-all}}img{border:0;vertical-align:middle}fieldset{margin:0;padding:0;border:0}input[type=search]::-webkit-search-cancel-button{display:none}table{border:0;border-collapse:collapse}td,th{padding:0}.header-top-bg{background-color:#0050b2;background-image:-webkit-radial-gradient(50% 15px,circle,rgba(0,0,0,0) 0,rgba(0,0,0,0) 50%,#00276c 100%),url(img/patterned-bg.png);background-image:radial-gradient(circle at 50% 15px,rgba(0,0,0,0) 0,rgba(0,0,0,0) 50%,#00276c 100%),url(img/patterned-bg.png);box-shad
 ow:0 3px 9px #c1c1c1;border-bottom:3px solid #003270;position:relative;z-index:2}.header-top{text-align:center;padding:9pt 0}@media (min-width:568px){.header-top{padding-bottom:18px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}}.header-bottom-bg{background-color:#efefef;border-bottom:1px solid #dedede;box-shadow:0 0 7px #eee;position:relative;z-index:1}.search-row{padding-top:9pt}@media (min-width:568px){.search-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:end;-webkit-align-items:flex-en
 d;-ms-flex-align:end;align-items:flex-end}}.search-row .navigation-header,.search-row .search-form{padding-top:3px;padding-bottom:3px}.search-row .navigation-header{display:block;font-size:18px;line-height:1;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}@media (min-width:568px){.search-row .navigation-header{font-size:27px}}@media (min-width:768px){.search-row .navigation-header{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0}}.breadcrumb-row{padding-top:9px;padding-bottom:9px}.search-row+.breadcrumb-row{padding-top:0}@media (min-width:568px){.breadcrumb-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}}.main-content{-webkit-box-flex:1;-webkit-fle
 x:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.content-wrapper{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:18px;padding-bottom:18px}@media (min-width:768px){.content-wrapper{padding-top:30px;padding-bottom:3pc}}.content-wrapper.no-toc{display:block}.content-wrapper .col-left{-webkit-box-flex:0;-webkit-flex:0 0 10pc;-ms-flex:0 0 10pc;flex:0 0 10pc;max-width:10pc;margin-right:18px;display:none}@media (min-width:568px){.content-wrapper .col-left{display:block}}@media (min-width:768px){.content-wrapper .col-left{-webkit-flex-basis:210px;-ms-flex-preferred-size:210px;flex-basis:210px;max-width:210px;margin-right:3pc}.content-wrapper .col-left.expanded{max-width:100%}}.cont
 ent-wrapper .col-right{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}@media (min-width:768px){.page-content{padding-bottom:42px}}.page-content a{word-break:break-word}.page-content .page-title{border-bottom:1px solid #eee;padding-bottom:9pt;margin-bottom:9pt}.page-type-docgen-search-results .page-content .page-title{border:none;padding-bottom:0;margin-bottom:0}@media (min-width:768px){.page-content .page-title{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}}@media (min-width:768px){.page-content .page-title{padding-bottom:24px;margin-bottom:24px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.page-content .page-title .title-wrapper{-webk
 it-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.page-content .page-title h1{margin:0;font-size:24px}@media (min-width:768px){.page-content .page-title h1{font-size:30px}}.page-content .page-title .subtitle{display:block;font-size:14px}@media (min-width:768px){.page-content .page-title .subtitle{font-size:18px}}@media (min-width:992px){.page-content .page-title .subtitle{font-size:24px}}.page-content .content-header::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f1dd";margin-left:-18px;margin-top:2px;width:18px;font-weight:400;font-size:18px;color:#C82222;float:left;visibility:hidden}@media (min-width:768px){.page-content .content-header::before{margin-left:-24px}}.page-content .active::before{-webkit-animation:header-pulse .3s 3 steps(2,end);animation:header-pulse .3s 3 steps(2,end)}@-webkit-keyframes header-pulse{0%{visibility:hidden}100%{visibility:visible}}@keyframes header-pulse{0%{visibility:hidden}100%{visibility:visi
 ble}}.site-footer{border-top:3px solid #003270;background-color:#0050b2;background-image:-webkit-radial-gradient(50% -50px,ellipse,rgba(0,0,0,0) 0,rgba(0,0,0,0) 24%,#000c3b 86%,#000c3b 100%),url(img/patterned-bg.png);background-image:radial-gradient(ellipse at 50% -50px,rgba(0,0,0,0) 0,rgba(0,0,0,0) 24%,#000c3b 86%,#000c3b 100%),url(img/patterned-bg.png);font-weight:300;color:#fff}.site-footer a{color:#fff}.site-footer a:hover{color:rgba(255,255,255,.8)}@media (min-width:568px){.footer-top{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}}@media (min-width:992px){.footer-top{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}}.footer-top .col-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.footer-top .col-
 right{padding-top:9pt;padding-bottom:9pt;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}@media (min-width:992px){.footer-top .col-right{padding-top:24px}}@media (min-width:768px){.footer-top .col-right{text-align:right}}@media (min-width:568px){.sitemap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.sitemap .column{padding-top:9pt;padding-bottom:9pt;margin-right:9pt;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}@media (min-width:992px){.sitemap .column{padding-top:24px}}.sitemap .column:last-child{margin-right:0}@media (min-width:768px){.sitemap .column{margin-right:54px}}.sitemap .column .column-header{color:#fff;border-bottom:2px solid #4c76ab;margin:0 0 6px;padding-bottom:6px;font-weight:400}.sitemap .column ul{padding:0;margin:0;list-style-type:none}.sitemap .column a{padding-right:9px;display:block}.xxe{display:inline-block;width:110px;heigh
 t:34px;margin-top:15px;background:#fff url(img/xxe.png) 50% no-repeat;border:1px solid #002254}.xxe span{display:none}.footer-bottom{padding:45px 0 30px}@media (min-width:768px){.footer-bottom{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.footer-bottom p{margin:0 0 6px;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-flex:1}.footer-bottom .generated-for-product{font-size:9pt;display:block}.footer-bottom .last-updated{font-size:9pt;display:block}.logo{padding:6px 0 0;display:block}.logo img{display:block;margin:0 auto;width:204px;height:19px}.tabs{list-style-type:none;margin:0;padding:6px 0 0;text-align:center;font-weight:300}@media (min-width:568px){.tabs{margin-left:24px;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;padding-top:0}}.tabs li{
 display:inline-block}.tabs li.current a{color:#fff;font-weight:400}.secondary-tabs li::after,.tabs li::after{width:1px;background-color:#96a5b8;height:9px;display:inline-block;content:'';margin:0 15px}.secondary-tabs li:last-child::after,.tabs li:last-child::after{display:none}.secondary-tabs .tab,.tabs li a{color:#c9dbf1}.secondary-tabs li a:hover,.tabs li a:hover{color:#fff}.secondary-tabs{margin:0;list-style-type:none;padding:6px 0 0;display:none;text-align:center}@media (min-width:768px){.secondary-tabs{display:block;text-align:right;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}}.secondary-tabs li{display:inline-block}.secondary-tabs li:last-child{margin-right:0}.secondary-tabs li a:hover strong{border-bottom-color:transparent}.secondary-tabs .tab::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:18px;height:18px;display:inline-block;font-size:9pt;text-align:center}@media (min-width:992px){.secondar
 y-tabs .tab::before{padding-right:6px}}.secondary-tabs .tab.icon-heart::before{content:"\e609"}.secondary-tabs .tab.icon-star::before{content:"\e608"}.secondary-tabs .tab.icon-bug::before{content:"\f188"}.secondary-tabs .tab.icon-download::before{content:"\e606"}.secondary-tabs .tab strong{font-weight:400;border-bottom:1px solid #8fafd7}.secondary-tabs .tab span{display:none}@media (min-width:992px){.secondary-tabs .tab span{display:inline}}.breadcrumb{list-style-type:none;margin:0;padding:6px 0 0 0;font-size:9pt;display:block;white-space:nowrap;overflow:hidden}@media (min-width:768px){.breadcrumb{font-size:13px}}.breadcrumb li{display:inline-block}.breadcrumb li::after{content:'/';color:#979797;margin:0 3px}@media (min-width:768px){.breadcrumb li::after{margin:0 6px}}.breadcrumb li:last-child a{color:#333}.breadcrumb li:last-child::after{display:none}.breadcrumb li.step-0 a::after{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e60
 a";display:inline-block;width:14px;height:14px;font-size:9pt;position:relative;top:1px}.breadcrumb li.step-0 a span{display:none}.table-of-contents{list-style-type:none;padding:0;margin:6px 0 0;font-size:9pt}@media (min-width:768px){.table-of-contents{margin-top:9pt;font-size:13px}}.table-of-contents .current::before{color:#0973f5}.table-of-contents .current>a:first-child{color:#0973f5}.table-of-contents ul{list-style-type:none}.section{border-bottom:1px solid #eee;margin-bottom:9pt;padding-bottom:9pt}@media (min-width:768px){.section{margin-bottom:24px;padding-bottom:24px}}.section.last{border-bottom:0;margin-bottom:0}.section.last .depth-0-link{margin-bottom:0}.depth-0-link{color:#0050b2;text-transform:uppercase;font-weight:400;display:block;line-height:1;margin-bottom:9pt}@media (min-width:768px){.depth-0-link{margin-bottom:24px}}a.depth-0-link:hover{color:#0973f5}.depth-1{margin:0;padding:0}.depth-1 li{padding-left:14px;position:relative}.depth-1 li::before{font-family:icomoon;-
 webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e602";width:14px;height:14px;display:block;position:absolute;left:-3px;top:2px;font-size:14px;line-height:1}.depth-1 li.has-children::before{content:"\e600";font-size:13px;cursor:pointer}.depth-1 li.has-children.open::before{content:"\e601";font-size:13px}.depth-1 li.has-children .last::before{content:"\e602";top:3px}.depth-1 a{display:block;color:#444}.depth-1 a:hover{color:#888}.depth-2{margin:0;padding:0}.closed ul{display:none}.open ul{display:block}.page-menu{margin:0 0 9pt;padding:0 0 9pt 18px;border-bottom:1px solid #eee}.page-menu .page-menu-title{margin-top:0;margin-bottom:1em;color:#0050b2;font-weight:700}@media (min-width:768px){.page-menu{margin-bottom:24px;margin-top:-9pt}}.page-menu ul{margin:0 0 0 18px;padding:0}.page-menu a:visited{color:purple}.search-form{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;height:26px;width:100%;display:inline-block}.search-form.offli
 ne{display:none}@media (min-width:768px){.search-form{max-width:300px}}.search-form fieldset{height:26px}.search-form .search-btn{color:#0050b2;line-height:1;background-color:#fff;background-image:none;border:0;border-radius:0;padding:0 3px;width:26px;height:24px;position:relative;top:-25px;float:right;right:1px}.search-form .search-btn:focus,.search-form .search-btn:hover{color:#4c9cff;cursor:pointer;outline:0}.search-form .search-btn::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f002";box-sizing:border-box;font-size:1pc;width:18px;height:18px;display:block}.search-form .search-input{-webkit-appearance:none;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;background-image:none;background:#fff;font-size:1pc;line-height:21px;border:1px solid #aec0d6;border-radius:0;box-sizing:border-box;padding:3px 24px 3px 9px;height:26px;width:100%;-webkit-transition:border-color .2s ease-in;transition:border-color .2s ease-in}.search
 -form .search-input::-moz-placeholder{color:#0050b2;opacity:.6;font-size:14px}.search-form .search-input:-ms-input-placeholder{color:#0050b2;font-size:14px;line-height:21px}.search-form .search-input::-webkit-input-placeholder{color:#0050b2;opacity:.6;font-size:14px}.search-form .search-input:focus{outline:0;border-color:#0050b2}.search-results .gsc-control-cse{padding:0}.search-results .gs-title,.search-results .gs-title *{color:#0050b2!important;text-decoration:none!important}.search-results .gs-title :hover,.search-results .gs-title:hover{color:#0973f5!important}.bottom-pagers-wrapper::after,.bottom-pagers-wrapper::before{content:" ";display:table}.bottom-pagers-wrapper::after{clear:both}@media (min-width:768px){.bottom-pagers-wrapper{position:absolute;bottom:0;right:0}}.pagers{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;white-space:nowrap}@media (min-width:768px){.pagers{float:right;font-size:14px}}.pagers.top{-webkit-box-ordinal-group:2;-webkit-ord
 er:1;-ms-flex-order:1;order:1;margin-bottom:6px}@media (min-width:768px){.pagers.top{margin-left:9pt;margin-bottom:0}}.paging-arrow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;word-break:normal}.paging-arrow::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:block;line-height:21px;vertical-align:middle;width:17px}@media (min-width:568px){.paging-arrow.previous{margin-right:9pt}}.paging-arrow.previous::before{content:"\f190";padding-right:3px;float:left}.paging-arrow.next{text-align:right}.paging-arrow.next::before{content:"\f18e";padding-left:3px;float:right}.bookmarks{text-align:right;display:none}@media (min-width:992px){.bookmarks{display:block}}.bookmarks::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e607";width:14px;height:14px;display:inline-block;position:relative;top:2px;margin-right:1px;color:#0050b2}.bookmarks ul{list-style-type:no
 ne;margin:0;padding:0;display:inline-block;font-size:13px}.bookmarks ul li{display:inline-block}.bookmarks ul li::after{content:",";display:inline-block;margin:0 3px 0 0}.bookmarks ul li:last-child::after{display:none}.callout{padding:15px 18px;margin:9pt 0;border-left:4px solid #eee;background-color:#f9f9f9;max-width:600px}.callout.note{border-left-color:#A181AE;background-color:#F9F2FA}.callout.note .callout-label{color:#7D578C}.callout.warning{border-left-color:#EDBABA;background-color:#FCEAEA}.callout.warning .callout-label{color:#900}.callout p:first-of-type{margin-top:3px}.callout p:last-child{margin-bottom:0}.callout-label{display:block;padding-bottom:3px}.callout-label::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:9pt}.note .callout-label::before{content:"\e605";margin-right:3px}.warning .callout-label::before{content:"\e604";font-size:14px;margin-right:6px}.marked-text{background-color:#AEDDFF}.marked-interpolatio
 n{background-color:#FFC070}.marked-ftl-tag{background-color:#FFEE6B}.marked-comment{background-color:#5CFF6A}.marked-template{background-color:#e4e4e4}.marked-data-model{background-color:#D2E2EF}.marked-output{background-color:#D5EAD7}.marked-invisible-text{opacity:.33}.marked-for-programmers{color:#339;font-style:italic}.code-color{color:red}.code-block{border:0;position:relative;padding:3px 6px 4px;margin:9pt 0;background-color:#f4f4f4}@media (min-width:992px){.code-block{display:inline-block;min-width:600px;margin:0}ul .code-block{min-width:300px;display:block}}.callout .code-block{background-color:transparent!important;padding:0!important;margin:0!important}.callout .code-block::after{display:none!important}.code-block.code-template{background-color:#f4f4f4;padding-top:23px}.code-block.code-template::after{position:absolute;top:0;right:0;left:0;padding:3px 9px;font-size:10px;font-weight:700;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;color:rgba(
 94,94,94,.8);background-color:#e4e4e4;content:"Template"}.code-block.code-data-model{background-color:#ecf3f8;padding-top:23px}.code-block.code-data-model::after{position:absolute;top:0;right:0;left:0;padding:3px 9px;font-size:10px;font-weight:700;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;color:rgba(94,94,94,.8);background-color:#D2E2EF;content:"Data Model"}.code-block.code-output{background-color:#ECF8EE;padding-top:23px}.code-block.code-output::after{position:absolute;top:0;right:0;left:0;padding:3px 9px;font-size:10px;font-weight:700;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;color:rgba(94,94,94,.8);background-color:#D5EAD7;content:"Output"}.table-responsive{min-height:.01%;overflow-x:auto}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar}}.table{background-color:transparent;border-spacing:0;border-collapse:collapse;border:1px
  solid #ddd;width:100%;max-width:100%}.table th{font-weight:500;text-align:left;background-color:#f9f9f9;border-bottom:1px solid #ddd;white-space:nowrap}.table td,.table th{padding:3px 6px;border:1px solid #ddd;vertical-align:top}.table td{white-space:nowrap}@media (min-width:992px){.table td{white-space:normal}}.table a{word-break:normal}.social-icons{margin:0;padding:0;list-style-type:none}.social-icons li{display:inline-block;margin-right:18px}.social-icons li:last-child{margin-right:0}.social-icons li a::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:14px;height:22px;display:inline-block;padding-right:3px}.social-icons li .github::before{content:"\f09b"}.social-icons li .twitter::before{content:"\f099"}.social-icons li .stack-overflow::before{content:"\f16c"}.site-width{margin-left:auto;margin-right:auto;padding-left:18px;padding-right:18px}@media (min-width:768px){.site-width{padding-left:24px;padding-right:24px;width:700px
 }}@media (min-width:992px){.site-width{width:924px}}@media (min-width:1200px){.site-width{width:849pt}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.center-img{text-align:center}.center-img img{max-width:100%}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/fonts/icomoon.eot
----------------------------------------------------------------------
diff --git a/docgen-resources/fonts/icomoon.eot b/docgen-resources/fonts/icomoon.eot
new file mode 100644
index 0000000..6d5cc05
Binary files /dev/null and b/docgen-resources/fonts/icomoon.eot differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/fonts/icomoon.svg
----------------------------------------------------------------------
diff --git a/docgen-resources/fonts/icomoon.svg b/docgen-resources/fonts/icomoon.svg
new file mode 100644
index 0000000..0539897
--- /dev/null
+++ b/docgen-resources/fonts/icomoon.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="icomoon" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
+<glyph unicode="&#xe600;" d="M810.667 384h-256v-256h-85.333v256h-256v85.333h256v256h85.333v-256h256v-85.333z" />
+<glyph unicode="&#xe601;" d="M810.667 384h-597.333v85.333h597.333v-85.333z" />
+<glyph unicode="&#xe602;" d="M399.36 460.8c0-62.208 50.483-112.64 112.691-112.64s112.589 50.483 112.589 112.64c0 62.208-50.381 112.589-112.589 112.589s-112.691-50.381-112.691-112.589z" />
+<glyph unicode="&#xe604;" d="M998.963 52.224l-456.038 851.558c-6.349 11.008-18.125 17.818-30.925 17.818-12.851 0-24.627-6.81-30.925-17.818l-455.987-851.558c-6.195-10.803-6.093-24.115 0.256-34.816 6.4-10.803 18.022-17.408 30.618-17.408h912.077c12.544 0 24.269 6.605 30.618 17.408 6.349 10.701 6.451 24.013 0.307 34.816zM563.2 102.4h-102.4v102.4h102.4v-102.4zM563.2 281.6h-102.4v332.8h102.4v-332.8z" />
+<glyph unicode="&#xe605;" d="M636.518 972.8c68.608 0 102.912-46.694 102.912-100.198 0-66.816-59.597-128.614-137.165-128.614-64.973 0-102.861 38.4-101.069 101.888 0 53.402 45.107 126.925 135.322 126.925zM425.421-51.2c-54.17 0-93.85 33.382-55.962 180.429l62.157 260.71c10.803 41.677 12.595 58.419 0 58.419-16.23 0-86.477-28.774-128.102-57.19l-27.034 45.056c131.686 111.923 283.187 177.51 348.211 177.51 54.118 0 63.13-65.178 36.096-165.376l-71.219-274.022c-12.595-48.384-7.219-65.075 5.427-65.075 16.23 0 69.478 20.070 121.805 61.798l30.72-41.677c-128.102-130.406-268.032-180.582-322.099-180.582z" />
+<glyph unicode="&#xe606;" d="M768 614.4h-153.6v307.2h-204.8v-307.2h-153.6l256-256 256 256zM990.106 279.962c-10.752 11.469-82.483 88.218-102.963 108.237-13.568 13.261-32.973 21.402-53.35 21.402h-89.958l156.877-153.293h-181.453c-5.222 0-9.933-2.662-12.288-6.81l-41.779-95.898h-306.381l-41.779 95.898c-2.355 4.147-7.117 6.81-12.288 6.81h-181.453l156.826 153.293h-89.907c-20.326 0-39.731-8.141-53.35-21.402-20.48-20.070-92.211-96.819-102.963-108.237-25.037-26.675-38.81-47.923-32.256-74.189l28.723-157.389c6.554-26.317 35.379-47.923 64.102-47.923h835.174c28.723 0 57.549 21.606 64.102 47.923l28.723 157.389c6.451 26.266-7.27 47.514-32.358 74.189z" />
+<glyph unicode="&#xe607;" d="M768 972.8h-204.8c-28.314 0-51.2-22.886-51.2-51.2l1.178-11.366c56.422 0 102.4-45.926 102.4-102.4v-581.581l50.022 60.467 153.6-184.32v819.2c0 28.314-22.886 51.2-51.2 51.2zM461.978 819.2h-205.978c-28.314 0-51.2-22.886-51.2-51.2v-819.2l153.6 184.32 153.6-184.32v819.2c0 28.314-21.709 51.2-50.022 51.2z" />
+<glyph unicode="&#xe608;" d="M512 906.24l122.266-344.166h328.294l-267.878-202.138 95.795-354.714-278.477 212.685-278.426-212.685 95.744 354.714-267.93 202.138h328.294l122.317 344.166z" />
+<glyph unicode="&#xe609;" d="M880.128 760.013c-85.606 78.592-224.41 78.592-310.016 0l-58.112-53.299-58.163 53.299c-85.606 78.592-224.358 78.592-309.965 0-96.307-88.371-96.307-231.373 0-319.744l368.128-337.869 368.128 337.869c96.256 88.371 96.256 231.424 0 319.744zM825.549 492.8l-313.549-292.608-313.6 292.608c-31.59 29.030-43.827 66.918-43.827 107.213s7.066 73.37 38.707 102.349c27.904 25.651 65.434 39.782 105.626 39.782 40.141 0 77.67-24.371 105.574-50.074l107.52-93.44 107.469 93.491c27.955 25.702 65.434 50.074 105.626 50.074s77.722-14.131 105.626-39.782c31.642-28.979 38.656-62.054 38.656-102.349s-12.186-78.234-43.827-107.264z" />
+<glyph unicode="&#xe60a;" d="M737.28 512h-296.96c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h296.96c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM839.68 256h-399.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h399.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM440.32 665.6h399.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2h-399.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2zM276.48 512h-92.16c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h92.16c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM276.48 256h-92.16c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h92.16c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM276.48 768h-92.16c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h92.16c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2z" />
+<glyph unicode="&#xf002;" d="M658.286 475.428q0 105.714-75.143 180.857t-180.857 75.143-180.857-75.143-75.143-180.857 75.143-180.857 180.857-75.143 180.857 75.143 75.143 180.857zM950.857 0q0-29.714-21.714-51.429t-51.429-21.714q-30.857 0-51.429 21.714l-196 195.429q-102.286-70.857-228-70.857-81.714 0-156.286 31.714t-128.571 85.714-85.714 128.571-31.714 156.286 31.714 156.286 85.714 128.571 128.571 85.714 156.286 31.714 156.286-31.714 128.571-85.714 85.714-128.571 31.714-156.286q0-125.714-70.857-228l196-196q21.143-21.143 21.143-51.429z" horiz-adv-x="951" />
+<glyph unicode="&#xf099;" d="M925.714 717.714q-38.286-56-92.571-95.429 0.571-8 0.571-24 0-74.286-21.714-148.286t-66-142-105.429-120.286-147.429-83.429-184.571-31.143q-154.857 0-283.429 82.857 20-2.286 44.571-2.286 128.571 0 229.143 78.857-60 1.143-107.429 36.857t-65.143 91.143q18.857-2.857 34.857-2.857 24.571 0 48.571 6.286-64 13.143-106 63.714t-42 117.429v2.286q38.857-21.714 83.429-23.429-37.714 25.143-60 65.714t-22.286 88q0 50.286 25.143 93.143 69.143-85.143 168.286-136.286t212.286-56.857q-4.571 21.714-4.571 42.286 0 76.571 54 130.571t130.571 54q80 0 134.857-58.286 62.286 12 117.143 44.571-21.143-65.714-81.143-101.714 53.143 5.714 106.286 28.571z" horiz-adv-x="951" />
+<glyph unicode="&#xf09b;" d="M877.714 438.857q0-143.429-83.714-258t-216.286-158.571q-15.429-2.857-22.571 4t-7.143 17.143v120.571q0 55.429-29.714 81.143 32.571 3.429 58.571 10.286t53.714 22.286 46.286 38 30.286 60 11.714 86q0 69.143-45.143 117.714 21.143 52-4.571 116.571-16 5.143-46.286-6.286t-52.571-25.143l-21.714-13.714q-53.143 14.857-109.714 14.857t-109.714-14.857q-9.143 6.286-24.286 15.429t-47.714 22-49.143 7.714q-25.143-64.571-4-116.571-45.143-48.571-45.143-117.714 0-48.571 11.714-85.714t30-60 46-38.286 53.714-22.286 58.571-10.286q-22.857-20.571-28-58.857-12-5.714-25.714-8.571t-32.571-2.857-37.429 12.286-31.714 35.714q-10.857 18.286-27.714 29.714t-28.286 13.714l-11.429 1.714q-12 0-16.571-2.571t-2.857-6.571 5.143-8 7.429-6.857l4-2.857q12.571-5.714 24.857-21.714t18-29.143l5.714-13.143q7.429-21.714 25.143-35.143t38.286-17.143 39.714-4 31.714 2l13.143 2.286q0-21.714 0.286-50.857t0.286-30.857q0-10.286-7.429-17.143t-22.857-4q-132.571 44-216.286 158.571t-83.714 258q0 119.429 58.857 220
 .286t159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
+<glyph unicode="&#xf16c;" d="M530.286 150.286v-86.286l-404-0.571v86.286zM668 348v-400.571l-0.571-20v-0.571l-667.429 0.571v420.571h69.143v-353.143h530.286v353.143h68.571zM137.714 297.714l402.286-37.143-7.429-85.714-402.857 37.143zM176.571 478.286l390.286-104.571-22.286-83.429-390.286 104.571zM269.714 677.714l348-205.714-44-74.286-348 205.714zM475.429 866.857l227.429-334.286-70.857-48.571-228 333.714zM734.286 950.857l69.143-398.286-85.143-14.857-69.143 398.286z" horiz-adv-x="805" />
+<glyph unicode="&#xf188;" d="M932.571 402.286q0-14.857-10.857-25.714t-25.714-10.857h-128q0-97.714-38.286-165.714l118.857-119.429q10.857-10.857 10.857-25.714t-10.857-25.714q-10.286-10.857-25.714-10.857t-25.714 10.857l-113.143 112.571q-2.857-2.857-8.571-7.429t-24-16.286-37.143-20.857-46.857-16.571-55.429-7.429v512h-73.143v-512q-29.143 0-58 7.714t-49.714 18.857-37.714 22.286-24.857 18.571l-8.571 8-104.571-118.286q-11.429-12-27.429-12-13.714 0-24.571 9.143-10.857 10.286-11.714 25.429t8.857 26.571l115.429 129.714q-33.143 65.143-33.143 156.571h-128q-14.857 0-25.714 10.857t-10.857 25.714 10.857 25.714 25.714 10.857h128v168l-98.857 98.857q-10.857 10.857-10.857 25.714t10.857 25.714 25.714 10.857 25.714-10.857l98.857-98.857h482.286l98.857 98.857q10.857 10.857 25.714 10.857t25.714-10.857 10.857-25.714-10.857-25.714l-98.857-98.857v-168h128q14.857 0 25.714-10.857t10.857-25.714zM658.286 731.428h-365.714q0 76 53.429 129.429t129.429 53.429 129.429-53.429 53.429-129.429z" horiz-adv-x="951" />
+<glyph unicode="&#xf18e;" d="M658.286 438.857q0-8-5.143-13.143l-182.857-182.857q-5.143-5.143-13.143-5.143-7.429 0-12.857 5.429t-5.429 12.857v109.714h-201.143q-7.429 0-12.857 5.429t-5.429 12.857v109.714q0 7.429 5.429 12.857t12.857 5.429h201.143v109.714q0 8 5.143 13.143t13.143 5.143q6.857 0 13.714-5.714l182.286-182.286q5.143-5.143 5.143-13.143zM749.714 438.857q0 84.571-41.714 156t-113.143 113.143-156 41.714-156-41.714-113.143-113.143-41.714-156 41.714-156 113.143-113.143 156-41.714 156 41.714 113.143 113.143 41.714 156zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
+<glyph unicode="&#xf190;" d="M658.286 493.714v-109.714q0-7.429-5.429-12.857t-12.857-5.429h-201.143v-109.714q0-8-5.143-13.143t-13.143-5.143q-6.857 0-13.714 5.714l-182.286 182.286q-5.143 5.143-5.143 13.143t5.143 13.143l182.857 182.857q5.143 5.143 13.143 5.143 7.429 0 12.857-5.429t5.429-12.857v-109.714h201.143q7.429 0 12.857-5.429t5.429-12.857zM749.714 438.857q0 84.571-41.714 156t-113.143 113.143-156 41.714-156-41.714-113.143-113.143-41.714-156 41.714-156 113.143-113.143 156-41.714 156 41.714 113.143 113.143 41.714 156zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
+<glyph unicode="&#xf1dd;" d="M730.286 842.857v-41.714q0-16.571-10.571-34.857t-24.286-18.286q-28.571 0-30.857-0.571-14.857-3.429-18.286-17.714-1.714-6.286-1.714-36.571v-658.286q0-14.286-10.286-24.571t-24.571-10.286h-61.714q-14.286 0-24.571 10.286t-10.286 24.571v696h-81.714v-696q0-14.286-10-24.571t-24.857-10.286h-61.714q-14.857 0-24.857 10.286t-10 24.571v283.429q-84 6.857-140 33.714-72 33.143-109.714 102.286-36.571 66.857-36.571 148 0 94.857 50.286 163.429 50.286 67.429 119.429 90.857 63.429 21.143 238.286 21.143h273.714q14.286 0 24.571-10.286t10.286-24.571z" horiz-adv-x="731" />
+</font></defs></svg>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/fonts/icomoon.ttf
----------------------------------------------------------------------
diff --git a/docgen-resources/fonts/icomoon.ttf b/docgen-resources/fonts/icomoon.ttf
new file mode 100644
index 0000000..f643244
Binary files /dev/null and b/docgen-resources/fonts/icomoon.ttf differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/fd1caa91/docgen-resources/fonts/icomoon.woff
----------------------------------------------------------------------
diff --git a/docgen-resources/fonts/icomoon.woff b/docgen-resources/fonts/icomoon.woff
new file mode 100644
index 0000000..7f40846
Binary files /dev/null and b/docgen-resources/fonts/icomoon.woff differ