You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by gi...@apache.org on 2022/11/05 16:38:21 UTC

[struts-site] 01/02: Updates stage by Jenkins

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

git-site-role pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/struts-site.git

commit f86663fd386bfe81d0f9407f8ea9dc721a9b269f
Author: jenkins <bu...@apache.org>
AuthorDate: Sat Nov 5 14:06:40 2022 +0000

    Updates stage by Jenkins
---
 content/core-developers/default-properties.html |   3 +
 content/core-developers/interceptors.html       |   5 +
 content/core-developers/struts-default-xml.html |   5 +
 content/plugins/async/index.html                | 290 ++++++++++++++++++++++++
 content/plugins/bean-validation/index.html      | 101 +++++----
 content/plugins/cdi/index.html                  |  25 +-
 content/plugins/codebehind/index.html           |  13 +-
 content/plugins/config-browser/index.html       |  32 ++-
 content/plugins/convention/index.html           |   2 +-
 content/plugins/dwr/index.html                  |  23 +-
 content/plugins/embedded-jsp/index.html         |  17 +-
 content/plugins/index.html                      |   5 +
 content/plugins/jasperreports/index.html        | 127 +++++------
 content/plugins/java-8-support/index.html       |  18 +-
 content/plugins/javatemplates/index.html        |  48 ++--
 content/plugins/jfreechart/index.html           |  20 +-
 content/plugins/jsf/index.html                  |  18 +-
 content/plugins/json/index.html                 |   2 +-
 content/plugins/junit/index.html                |   2 +-
 content/plugins/osgi/index.html                 |  22 +-
 content/plugins/oval/index.html                 |  17 +-
 content/plugins/plexus/index.html               |  14 +-
 content/plugins/portlet-tiles/index.html        |  10 +-
 content/plugins/portlet/index.html              |  21 +-
 content/plugins/rest/index.html                 |   2 +-
 content/plugins/sitegraph/index.html            | 132 +++++------
 content/plugins/sitemesh/index.html             |  60 +++--
 content/plugins/spring/index.html               | 111 +++++----
 content/plugins/struts-1/index.html             |  14 +-
 content/plugins/testng/index.html               |  17 +-
 content/plugins/tiles-3/index.html              |  17 +-
 content/plugins/tiles/index.html                |   2 +-
 content/tag-developers/css-xhtml-theme.html     |   2 +-
 content/tag-developers/simple-theme.html        |   2 +-
 content/tag-developers/xhtml-theme.html         |  10 +-
 35 files changed, 855 insertions(+), 354 deletions(-)

diff --git a/content/core-developers/default-properties.html b/content/core-developers/default-properties.html
index d8e2758be..741a47f39 100644
--- a/content/core-developers/default-properties.html
+++ b/content/core-developers/default-properties.html
@@ -424,6 +424,9 @@ struts.ognl.expressionMaxLength=256
 ### These formatters are using a slightly different patterns, please check JavaDocs of both and more details is in WW-5016
 struts.date.formatter=dateTimeFormatter
 
+struts.url.encoder=strutsUrlEncoder
+struts.url.decoder=strutsUrlDecoder
+
 ### END SNIPPET: complete_file</code></pre></figure>
 
 
diff --git a/content/core-developers/interceptors.html b/content/core-developers/interceptors.html
index 0e6587bcd..263b0a7ef 100644
--- a/content/core-developers/interceptors.html
+++ b/content/core-developers/interceptors.html
@@ -541,6 +541,11 @@ than reiterate the same list of Interceptors, we can bundle these Interceptors t
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"com.opensymphony.xwork2.ognl.BeanInfoCacheFactory"</span> <span class="na">name=</span><span class="s">"struts"</span>
           <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ognl.DefaultOgnlBeanInfoCacheFactory"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
 
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.url.UrlEncoder"</span> <span class="na">name=</span><span class="s">"strutsUrlEncoder"</span>
+          <span class="na">class=</span><span class="s">"org.apache.struts2.url.StrutsUrlEncoder"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.url.UrlDecoder"</span> <span class="na">name=</span><span class="s">"strutsUrlDecoder"</span>
+          <span class="na">class=</span><span class="s">"org.apache.struts2.url.StrutsUrlDecoder"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
+
     <span class="nt">&lt;package</span> <span class="na">name=</span><span class="s">"struts-default"</span> <span class="na">abstract=</span><span class="s">"true"</span><span class="nt">&gt;</span>
         <span class="nt">&lt;result-types&gt;</span>
             <span class="nt">&lt;result-type</span> <span class="na">name=</span><span class="s">"chain"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ActionChainResult"</span><span class="nt">/&gt;</span>
diff --git a/content/core-developers/struts-default-xml.html b/content/core-developers/struts-default-xml.html
index acf692a9b..6b68117a6 100644
--- a/content/core-developers/struts-default-xml.html
+++ b/content/core-developers/struts-default-xml.html
@@ -457,6 +457,11 @@ setting in <a href="default-properties">default.properties</a>.</p>
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"com.opensymphony.xwork2.ognl.BeanInfoCacheFactory"</span> <span class="na">name=</span><span class="s">"struts"</span>
           <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ognl.DefaultOgnlBeanInfoCacheFactory"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
 
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.url.UrlEncoder"</span> <span class="na">name=</span><span class="s">"strutsUrlEncoder"</span>
+          <span class="na">class=</span><span class="s">"org.apache.struts2.url.StrutsUrlEncoder"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.url.UrlDecoder"</span> <span class="na">name=</span><span class="s">"strutsUrlDecoder"</span>
+          <span class="na">class=</span><span class="s">"org.apache.struts2.url.StrutsUrlDecoder"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
+
     <span class="nt">&lt;package</span> <span class="na">name=</span><span class="s">"struts-default"</span> <span class="na">abstract=</span><span class="s">"true"</span><span class="nt">&gt;</span>
         <span class="nt">&lt;result-types&gt;</span>
             <span class="nt">&lt;result-type</span> <span class="na">name=</span><span class="s">"chain"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ActionChainResult"</span><span class="nt">/&gt;</span>
diff --git a/content/plugins/async/index.html b/content/plugins/async/index.html
new file mode 100644
index 000000000..afeac70d4
--- /dev/null
+++ b/content/plugins/async/index.html
@@ -0,0 +1,290 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8"/>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
+  <meta http-equiv="Content-Language" content="en"/>
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+
+  <title>Async Plugin</title>
+
+  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
+  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
+  <link href="/css/main.css" rel="stylesheet">
+  <link href="/css/custom.css" rel="stylesheet">
+  <link href="/highlighter/github-theme.css" rel="stylesheet">
+
+  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
+  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
+  <script type="text/javascript" src="/js/community.js"></script>
+</head>
+<body>
+
+<a href="http://github.com/apache/struts" class="github-ribbon">
+  <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
+</a>
+
+<header>
+  <nav>
+    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
+            Menu
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
+        </div>
+        <div id="struts-menu" class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+            <li class="dropdown">
+              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
+                Home<b class="caret"></b>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a href="/index.html">Welcome</a></li>
+                <li><a href="/download.cgi">Download</a></li>
+                <li><a href="/releases.html">Releases</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
+                Support<b class="caret"></b>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a href="/mail.html">User Mailing List</a></li>
+                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
+                <li><a href="/security.html">Reporting Security Issues</a></li>
+                <li class="divider"></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
+                <li class="divider"></li>
+                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
+                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
+                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
+                Documentation<b class="caret"></b>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a href="/birdseye.html">Birds Eye</a></li>
+                <li><a href="/primer.html">Key Technologies</a></li>
+                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
+                <li class="divider"></li>
+                <li><a href="/getting-started/">Getting Started</a></li>
+                <li><a href="/security/">Security Guide</a></li>
+                <li><a href="/core-developers/">Core Developers Guide</a></li>
+                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
+                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
+                <li><a href="/plugins/">Plugins</a></li>
+                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
+                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
+                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
+                Contributing<b class="caret"></b>
+              </a>
+              <ul class="dropdown-menu">
+                <li><a href="/youatstruts.html">You at Struts</a></li>
+                <li><a href="/helping.html">How to Help FAQ</a></li>
+                <li><a href="/dev-mail.html">Development Lists</a></li>
+                <li class="divider"></li>
+                <li><a href="/submitting-patches.html">Submitting patches</a></li>
+                <li><a href="/builds.html">Source Code and Builds</a></li>
+                <li><a href="/coding-standards.html">Coding standards</a></li>
+                <li><a href="/contributors/">Contributors Guide</a></li>
+                <li class="divider"></li>
+                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
+                <li><a href="/bylaws.html">PMC Charter</a></li>
+                <li><a href="/volunteers.html">Volunteers</a></li>
+                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
+                <li><a href="/updating-website.html">Updating the website</a></li>
+              </ul>
+            </li>
+            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </nav>
+</header>
+
+
+<article class="container">
+  <section class="col-md-12">
+    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/async/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
+    
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
+    
+    <h1 class="no_toc" id="async-plugin">Async Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#simple-usage" id="markdown-toc-simple-usage">Simple usage</a></li>
+  <li><a href="#customize-timeout" id="markdown-toc-customize-timeout">Customize timeout</a></li>
+  <li><a href="#serializing-multiple-async-tasks" id="markdown-toc-serializing-multiple-async-tasks">Serializing multiple async tasks</a></li>
+</ul>
+
+<h2 id="description">Description</h2>
+
+<p>The Async plugin allows to implement actions as using
+an <a href="https://docs.oracle.com/javaee/7/tutorial/servlets012.htm">Asynchronous Processing</a>
+available as from Servlet API 3. It’s a thin layer over the Servlet async layer.</p>
+
+<h2 id="simple-usage">Simple usage</h2>
+
+<p>The example code below shows how to implement and use async actions. Please check an async action example
+in our <a href="https://github.com/apache/struts/tree/master/apps/showcase/src/main/java/org/apache/struts2/showcase/async">Showcase app</a>.</p>
+
+<p><strong>Action</strong></p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">AsyncAction</span> <span class="o">{</span>
+
+    <span class="kd">public</span> <span class="nc">Callable</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;</span> <span class="nf">execute</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">InterruptedException</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">new</span> <span class="nc">Callable</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;()</span> <span class="o">{</span>
+            <span class="nd">@Override</span>
+            <span class="kd">public</span> <span class="nc">String</span> <span class="nf">call</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+                <span class="n">waitForEvent</span><span class="o">();</span>
+                <span class="k">return</span> <span class="s">"success"</span><span class="o">;</span>
+            <span class="o">}</span>
+        <span class="o">};</span>
+    <span class="o">}</span>
+
+    <span class="kd">private</span> <span class="kt">void</span> <span class="nf">waitForEvent</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">InterruptedException</span> <span class="o">{</span>
+        <span class="nc">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">40000</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</code></pre></div></div>
+
+<p><strong>struts.xml</strong></p>
+
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">"async"</span> <span class="na">class=</span><span class="s">"com.company.struts.AsyncAction"</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;result</span> <span class="na">name=</span><span class="s">"success"</span> <span class="na">type=</span><span class="s">"json"</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;/action&gt;</span>
+</code></pre></div></div>
+
+<p><strong>web.xml</strong></p>
+
+<p>You must define the Struts Servlet to allow support Async actions.</p>
+
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;servlet&gt;</span>
+    <span class="nt">&lt;servlet-name&gt;</span>strutsServlet<span class="nt">&lt;/servlet-name&gt;</span>
+    <span class="nt">&lt;servlet-class&gt;</span>org.apache.struts2.dispatcher.servlet.StrutsServlet<span class="nt">&lt;/servlet-class&gt;</span>
+    <span class="nt">&lt;load-on-startup&gt;</span>1<span class="nt">&lt;/load-on-startup&gt;</span>
+    <span class="nt">&lt;async-supported&gt;</span>true<span class="nt">&lt;/async-supported&gt;</span>
+<span class="nt">&lt;/servlet&gt;</span>
+
+<span class="nt">&lt;servlet-mapping&gt;</span>
+<span class="nt">&lt;servlet-name&gt;</span>strutsServlet<span class="nt">&lt;/servlet-name&gt;</span>
+<span class="nt">&lt;url-pattern&gt;</span>/<span class="nt">&lt;/url-pattern&gt;</span>
+<span class="nt">&lt;/servlet-mapping&gt;</span>
+</code></pre></div></div>
+
+<h2 id="customize-timeout">Customize timeout</h2>
+
+<p><strong>Action</strong></p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">AsyncAction</span> <span class="o">{</span>
+
+    <span class="kd">public</span> <span class="nc">Callable</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;</span> <span class="nf">execute</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">InterruptedException</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">new</span> <span class="nf">AsyncAction</span><span class="o">(</span><span class="mi">60000</span><span class="cm">/*timeout*/</span><span class="o">,</span> <span class="k">new</span> <span class="nc">Callable</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;()</span> <span class="o">{</span>
+            <span class="nd">@Override</span>
+            <span class="kd">public</span> <span class="nc">String</span> <span class="nf">call</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+                <span class="n">waitForEvent</span><span class="o">();</span>
+                <span class="k">return</span> <span class="s">"success"</span><span class="o">;</span>
+            <span class="o">}</span>
+        <span class="o">});</span>
+    <span class="o">}</span>
+
+    <span class="kd">private</span> <span class="kt">void</span> <span class="nf">waitForEvent</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">InterruptedException</span> <span class="o">{</span>
+        <span class="nc">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">40000</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</code></pre></div></div>
+
+<h2 id="serializing-multiple-async-tasks">Serializing multiple async tasks</h2>
+
+<p><strong>Action</strong></p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">AsyncAction</span> <span class="o">{</span>
+
+    <span class="kd">public</span> <span class="nc">Callable</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;</span> <span class="nf">execute</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">InterruptedException</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">new</span> <span class="nc">Callable</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;()</span> <span class="o">{</span>
+            <span class="nd">@Override</span>
+            <span class="kd">public</span> <span class="nc">String</span> <span class="nf">call</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+                <span class="n">waitForEvent1</span><span class="o">();</span>
+                <span class="k">return</span> <span class="k">new</span> <span class="nc">Callable</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;()</span> <span class="o">{</span>
+
+                    <span class="nd">@Override</span>
+                    <span class="kd">public</span> <span class="nc">String</span> <span class="nf">call</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+                        <span class="n">waitForEvent2</span><span class="o">();</span>
+                        <span class="k">return</span> <span class="s">"success"</span><span class="o">;</span>
+                    <span class="o">}</span>
+                <span class="o">};</span>
+            <span class="o">}</span>
+        <span class="o">};</span>
+    <span class="o">}</span>
+
+    <span class="kd">private</span> <span class="kt">void</span> <span class="nf">waitForEvent1</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">InterruptedException</span> <span class="o">{</span>
+        <span class="nc">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">40000</span><span class="o">);</span>
+    <span class="o">}</span>
+
+    <span class="kd">private</span> <span class="kt">void</span> <span class="nf">waitForEvent2</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">InterruptedException</span> <span class="o">{</span>
+        <span class="nc">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">40000</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</code></pre></div></div>
+
+  </section>
+</article>
+
+
+<footer class="container">
+  <div class="col-md-12">
+    Copyright &copy; 2000-2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
+    trademarks of The Apache Software Foundation. All Rights Reserved.
+  </div>
+  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
+</footer>
+
+<script>!function (d, s, id) {
+  var js, fjs = d.getElementsByTagName(s)[0];
+  if (!d.getElementById(id)) {
+    js = d.createElement(s);
+    js.id = id;
+    js.src = "//platform.twitter.com/widgets.js";
+    fjs.parentNode.insertBefore(js, fjs);
+  }
+}(document, "script", "twitter-wjs");</script>
+<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>
+
+<div id="fb-root"></div>
+
+<script>(function (d, s, id) {
+  var js, fjs = d.getElementsByTagName(s)[0];
+  if (d.getElementById(id)) return;
+  js = d.createElement(s);
+  js.id = id;
+  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
+  fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+
+
+</body>
+</html>
diff --git a/content/plugins/bean-validation/index.html b/content/plugins/bean-validation/index.html
index a65c6b008..28e1749ff 100644
--- a/content/plugins/bean-validation/index.html
+++ b/content/plugins/bean-validation/index.html
@@ -129,32 +129,34 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/bean-validation/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="bean-validation-plugin">Bean Validation Plugin</h1>
+    <h1 class="no_toc" id="bean-validation-plugin">Bean Validation Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#bean-validation" id="markdown-toc-bean-validation">Bean Validation</a></li>
+  <li><a href="#setup" id="markdown-toc-setup">Setup</a></li>
+  <li><a href="#configuration" id="markdown-toc-configuration">Configuration</a></li>
+  <li><a href="#bean-validation-example" id="markdown-toc-bean-validation-example">Bean Validation Example</a></li>
+</ul>
 
 <h2 id="bean-validation">Bean Validation</h2>
 
-<p>The Bean Validation plugin implements a bridge to use Bean Validation in struts actions. Bean Validation has been specified in JSR 303 and is part of the JavaEE platform. Full-fledged application servers already bring validation providers which can be leveraged by this plugin. The plugin integrates with other struts features like:</p>
+<p>The Bean Validation plugin implements a bridge to use Bean Validation in struts actions. Bean Validation has been
+specified in JSR 303 and is part of the JavaEE platform. Full-fledged application servers already bring validation
+providers which can be leveraged by this plugin. The plugin integrates with other struts features like:</p>
 
 <ul>
-  <li>
-    <p>i18n</p>
-  </li>
-  <li>
-    <p>model driven</p>
-  </li>
-  <li>
-    <p>AJAX Validation</p>
-  </li>
-  <li>
-    <p>workflow</p>
-  </li>
+  <li>i18n</li>
+  <li>model driven</li>
+  <li>AJAX Validation</li>
+  <li>workflow</li>
 </ul>
 
 <h2 id="setup">Setup</h2>
 
-<p>In order to use the Bean Validation plugin, you first need to add the JAR file to the <code class="language-plaintext highlighter-rouge">WEB-INF/lib</code> directory of your application or include the dependency in your project’s Maven POM file.</p>
+<p>In order to use the Bean Validation plugin, you first need to add the JAR file to the <code class="language-plaintext highlighter-rouge">WEB-INF/lib</code> directory of your
+application or include the dependency in your project’s Maven POM file.</p>
 
 <p><strong>pom.xml</strong></p>
 
@@ -165,11 +167,13 @@
 <span class="nt">&lt;/dependency&gt;</span>
 </code></pre></div></div>
 
-<p>Where X.X.X is the current version of Struts 2. Please remember that the Bean Validation Plugin is available from version 2.5.</p>
+<p>Where X.X.X is the current version of Struts 2. Please remember that the Bean Validation Plugin is available from
+version 2.5.</p>
 
 <h2 id="configuration">Configuration</h2>
 
-<p>This sample shows the configuration constants the plugin provides. It also shows how to enable bean-validation by extending your own application package from <code class="language-plaintext highlighter-rouge">struts-bean-validation</code> which comes along with the plugin.</p>
+<p>This sample shows the configuration constants the plugin provides. It also shows how to enable bean-validation
+by extending your own application package from <code class="language-plaintext highlighter-rouge">struts-bean-validation</code> which comes along with the plugin.</p>
 
 <p><strong>struts.xml</strong></p>
 
@@ -178,41 +182,44 @@
     <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.beanValidation.ignoreXMLConfiguration"</span> <span class="na">value=</span><span class="s">"false"</span><span class="nt">/&gt;</span>
     <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.beanValidation.convertMessageToUtf"</span> <span class="na">value=</span><span class="s">"false"</span><span class="nt">/&gt;</span>
     <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.beanValidation.convertMessageFromEncoding"</span> <span class="na">value=</span><span class="s">"ISO-8859-1"</span><span class="nt">/&gt;</span>
- 
+
     <span class="nt">&lt;package</span> <span class="na">name=</span><span class="s">"my-bean-validation"</span> <span class="na">extends=</span><span class="s">"struts-bean-validation"</span><span class="nt">&gt;</span>
     <span class="nt">&lt;/package&gt;</span>
 <span class="nt">&lt;/struts&gt;</span>
 </code></pre></div></div>
 
-<p>Here is another example that shows how you can combine bean-validation with other plugins by configuring your own Interceptor-Stack (note: this is just a very short example. In a real app you should take more care about your stack). You can combine bean validation with classic struts validation (or disable either) by putting the according interceptors in your stack (or by removing them from your stack).</p>
+<p>Here is another example that shows how you can combine bean-validation with other plugins by configuring your own
+Interceptor-Stack (note: this is just a very short example. In a real app you should take more care about your stack).
+You can combine bean validation with classic struts validation (or disable either) by putting the according interceptors
+in your stack (or by removing them from your stack).</p>
 
 <p><strong>struts.xml</strong></p>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>	<span class="nt">&lt;package</span> <span class="na">name=</span><span class="s">"my-app-package"</span> <span class="na">extends=</span><span class="s">"struts-default"</span><span class="nt">&gt;</span>
-		<span class="nt">&lt;interceptors&gt;</span>
-			<span class="nt">&lt;interceptor&gt;</span>
-				 name="beanValidation"
-				 class="org.apache.struts.beanvalidation.validation.interceptor.BeanValidationInterceptor"&gt;
-			<span class="nt">&lt;/interceptor&gt;</span>
-			<span class="nt">&lt;interceptor-stack</span> <span class="na">name=</span><span class="s">"appDefaultStack"</span><span class="nt">&gt;</span>
-				<span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"beanValidation"</span><span class="nt">/&gt;</span>
-				<span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"defaultStack"</span><span class="nt">/&gt;</span>
-			<span class="nt">&lt;/interceptor-stack&gt;</span>
-		<span class="nt">&lt;/interceptors&gt;</span>
-	<span class="nt">&lt;/package&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;package</span> <span class="na">name=</span><span class="s">"my-app-package"</span> <span class="na">extends=</span><span class="s">"struts-default"</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;interceptors&gt;</span>
+        <span class="nt">&lt;interceptor&gt;</span>
+            name="beanValidation"
+            class="org.apache.struts.beanvalidation.validation.interceptor.BeanValidationInterceptor"&gt;
+        <span class="nt">&lt;/interceptor&gt;</span>
+        <span class="nt">&lt;interceptor-stack</span> <span class="na">name=</span><span class="s">"appDefaultStack"</span><span class="nt">&gt;</span>
+            <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"beanValidation"</span><span class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"defaultStack"</span><span class="nt">/&gt;</span>
+        <span class="nt">&lt;/interceptor-stack&gt;</span>
+    <span class="nt">&lt;/interceptors&gt;</span>
+<span class="nt">&lt;/package&gt;</span>
 </code></pre></div></div>
 
-<p> </p>
-
 <h2 id="bean-validation-example">Bean Validation Example</h2>
 
-<p>Here is an example Action that makes use of bean validation. Note that some of the validation annotations are taken from <code class="language-plaintext highlighter-rouge">javax</code> package (which is defined in the JSR) while others are taken from the validaton provider (in this case: <code class="language-plaintext highlighter-rouge">hibernate</code>). You can specifiy own text keys in the <code class="language-plaintext highlighter-rouge">message</code> attribute of the annotatio [...]
+<p>Here is an example Action that makes use of bean validation. Note that some of the validation annotations are taken
+from <code class="language-plaintext highlighter-rouge">javax</code> package (which is defined in the JSR) while others are taken from the validaton provider (in this
+case: <code class="language-plaintext highlighter-rouge">hibernate</code>). You can specifiy own text keys in the <code class="language-plaintext highlighter-rouge">message</code> attribute of the annotations. If you do that the
+whole struts i18n mechanism kicks in to resolve those text keys.</p>
 
 <p><strong>com.example.actions.BeanValidationAction</strong></p>
 
 <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="nn">com.example.actions</span><span class="o">;</span>
 
-
 <span class="kn">import</span> <span class="nn">com.opensymphony.xwork2.ActionSupport</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">org.apache.struts.beanvalidation.constraints.FieldMatch</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">org.apache.struts2.convention.annotation.Action</span><span class="o">;</span>
@@ -224,6 +231,7 @@
 <span class="kn">import</span> <span class="nn">org.hibernate.validator.constraints.NotBlank</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">org.hibernate.validator.constraints.ScriptAssert</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">org.hibernate.validator.constraints.URL</span><span class="o">;</span>
+
 <span class="kn">import</span> <span class="nn">javax.validation.constraints.*</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">java.util.Date</span><span class="o">;</span>
 
@@ -243,7 +251,7 @@
     <span class="nd">@NotBlank</span>
     <span class="kd">private</span> <span class="nc">String</span> <span class="n">requiredStringValidatorField</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
 
-    <span class="nd">@NotNull</span><span class="o">(</span><span class="n">message</span><span class="o">=</span><span class="s">"your.text.key.here"</span><span class="o">)</span>
+    <span class="nd">@NotNull</span><span class="o">(</span><span class="n">message</span> <span class="o">=</span> <span class="s">"your.text.key.here"</span><span class="o">)</span>
     <span class="nd">@Min</span><span class="o">(</span><span class="mi">1</span><span class="o">)</span>
     <span class="nd">@Max</span><span class="o">(</span><span class="mi">10</span><span class="o">)</span>
     <span class="kd">private</span> <span class="nc">Integer</span> <span class="n">integerValidatorField</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
@@ -272,59 +280,76 @@
     <span class="kd">private</span> <span class="nc">String</span> <span class="n">fieldExpressionValidatorField</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
 
 
- <span class="kd">public</span> <span class="nc">Date</span> <span class="nf">getDateValidatorField</span><span class="o">()</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="nc">Date</span> <span class="nf">getDateValidatorField</span><span class="o">()</span> <span class="o">{</span>
 
         <span class="k">return</span> <span class="n">dateValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setDateValidatorField</span><span class="o">(</span><span class="nc">Date</span> <span class="n">dateValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">dateValidatorField</span> <span class="o">=</span> <span class="n">dateValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="nc">String</span> <span class="nf">getEmailValidatorField</span><span class="o">()</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">emailValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setEmailValidatorField</span><span class="o">(</span><span class="nc">String</span> <span class="n">emailValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">emailValidatorField</span> <span class="o">=</span> <span class="n">emailValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="nc">Integer</span> <span class="nf">getIntegerValidatorField</span><span class="o">()</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">integerValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setIntegerValidatorField</span><span class="o">(</span><span class="nc">Integer</span> <span class="n">integerValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">integerValidatorField</span> <span class="o">=</span> <span class="n">integerValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="nc">String</span> <span class="nf">getRegexValidatorField</span><span class="o">()</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">regexValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setRegexValidatorField</span><span class="o">(</span><span class="nc">String</span> <span class="n">regexValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">regexValidatorField</span> <span class="o">=</span> <span class="n">regexValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="nc">String</span> <span class="nf">getRequiredStringValidatorField</span><span class="o">()</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">requiredStringValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setRequiredStringValidatorField</span><span class="o">(</span><span class="nc">String</span> <span class="n">requiredStringValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">requiredStringValidatorField</span> <span class="o">=</span> <span class="n">requiredStringValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="nc">String</span> <span class="nf">getRequiredValidatorField</span><span class="o">()</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">requiredValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setRequiredValidatorField</span><span class="o">(</span><span class="nc">String</span> <span class="n">requiredValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">requiredValidatorField</span> <span class="o">=</span> <span class="n">requiredValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="nc">String</span> <span class="nf">getStringLengthValidatorField</span><span class="o">()</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">stringLengthValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setStringLengthValidatorField</span><span class="o">(</span><span class="nc">String</span> <span class="n">stringLengthValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">stringLengthValidatorField</span> <span class="o">=</span> <span class="n">stringLengthValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="nc">String</span> <span class="nf">getFieldExpressionValidatorField</span><span class="o">()</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">fieldExpressionValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setFieldExpressionValidatorField</span><span class="o">(</span>
             <span class="nc">String</span> <span class="n">fieldExpressionValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">fieldExpressionValidatorField</span> <span class="o">=</span> <span class="n">fieldExpressionValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="nc">String</span> <span class="nf">getUrlValidatorField</span><span class="o">()</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">urlValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
+
     <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUrlValidatorField</span><span class="o">(</span><span class="nc">String</span> <span class="n">urlValidatorField</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">this</span><span class="o">.</span><span class="na">urlValidatorField</span> <span class="o">=</span> <span class="n">urlValidatorField</span><span class="o">;</span>
     <span class="o">}</span>
diff --git a/content/plugins/cdi/index.html b/content/plugins/cdi/index.html
index dc7000289..93d243466 100644
--- a/content/plugins/cdi/index.html
+++ b/content/plugins/cdi/index.html
@@ -129,7 +129,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/cdi/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
     <h1 class="no_toc" id="cdi-plugin">CDI Plugin</h1>
 
@@ -364,8 +364,7 @@ to undefined - so check your imports!</p>
 <p>Now that you are aware of that, here is the rest of the inevitable NumberGuess CDI example in Struts 2 flavour. 
 Add a JSP view similar to this:</p>
 
-<div class="language-jsp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="nt">&lt;%@ page </span><span class="na">contentType=</span><span class="s">"text/html; charset=UTF-8"</span> <span class="nt">%&gt;</span>
+<div class="language-jsp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;%@ page </span><span class="na">contentType=</span><span class="s">"text/html; charset=UTF-8"</span> <span class="nt">%&gt;</span>
 <span class="nt">&lt;%@ taglib </span><span class="na">prefix=</span><span class="s">"s"</span><span class="na"> uri=</span><span class="s">"/struts-tags"</span> <span class="nt">%&gt;</span>
 <span class="nt">&lt;html&gt;</span>
 <span class="nt">&lt;head&gt;</span>
@@ -392,8 +391,7 @@ Add a JSP view similar to this:</p>
 
 <p>along - if not using the fabulous and recommended Struts 2 <a href="../convention">Convention Plugin</a> - with a struts.xml like this</p>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="cp">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
 <span class="cp">&lt;!DOCTYPE struts PUBLIC
           "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"       
           "http://struts.apache.org/dtds/struts-2.3.dtd"&gt;</span>
@@ -414,13 +412,11 @@ Add a JSP view similar to this:</p>
     <span class="nt">&lt;/package&gt;</span>
 
 <span class="nt">&lt;/struts&gt;</span>
-
 </code></pre></div></div>
 
 <p>Now you can add the business logic we want to be managed and injected by CDI. Start with two qualifier annotations:</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="kn">package</span> <span class="nn">org.apache.struts2.example.cdi</span><span class="o">;</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="nn">org.apache.struts2.example.cdi</span><span class="o">;</span>
 
 <span class="kn">import</span> <span class="nn">javax.inject.Qualifier</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">java.lang.annotation.Documented</span><span class="o">;</span>
@@ -434,11 +430,9 @@ Add a JSP view similar to this:</p>
 <span class="nd">@Documented</span>
 <span class="nd">@Qualifier</span>
 <span class="kd">public</span> <span class="nd">@interface</span> <span class="nc">Random</span> <span class="o">{}</span>
-
 </code></pre></div></div>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="kn">package</span> <span class="nn">org.apache.struts2.example.cdi</span><span class="o">;</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="nn">org.apache.struts2.example.cdi</span><span class="o">;</span>
 
 <span class="kn">import</span> <span class="nn">javax.inject.Qualifier</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">java.lang.annotation.Documented</span><span class="o">;</span>
@@ -452,13 +446,11 @@ Add a JSP view similar to this:</p>
 <span class="nd">@Documented</span>
 <span class="nd">@Qualifier</span>
 <span class="kd">public</span> <span class="nd">@interface</span> <span class="nc">MaxNumber</span> <span class="o">{}</span>
-
 </code></pre></div></div>
 
 <p>Now on to the actual business beans, the Game and the Generator bean:</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="kn">package</span> <span class="nn">org.apache.struts2.example.cdi</span><span class="o">;</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="nn">org.apache.struts2.example.cdi</span><span class="o">;</span>
 
 <span class="kn">import</span> <span class="nn">javax.annotation.PostConstruct</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">javax.enterprise.context.SessionScoped</span><span class="o">;</span>
@@ -540,7 +532,6 @@ Add a JSP view similar to this:</p>
     <span class="o">}</span>
 
 <span class="o">}</span>
-
 </code></pre></div></div>
 
 <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
@@ -569,10 +560,8 @@ Add a JSP view similar to this:</p>
       <span class="k">return</span> <span class="n">maxNumber</span><span class="o">;</span>
    <span class="o">}</span>
 
-<span class="o">}</span> 
-
+<span class="o">}</span>
 </code></pre></div></div>
-
 <p>If you understand that code at a glance, you are either already an CDI expert or profit from the readable, natural
 language oriented way the CDI stack works. If neither of this is the case, now it’s time to check the CDI and Weld 
 documentation. Remember, this is a trivial example - there is much more to know about CDI.</p>
diff --git a/content/plugins/codebehind/index.html b/content/plugins/codebehind/index.html
index d145e42e1..df7dcb0f8 100644
--- a/content/plugins/codebehind/index.html
+++ b/content/plugins/codebehind/index.html
@@ -131,7 +131,18 @@
     
     <a href="../" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="codebehind-plugin">Codebehind Plugin</h1>
+    <h1 class="no_toc" id="codebehind-plugin">Codebehind Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a>    <ul>
+      <li><a href="#default-mappings" id="markdown-toc-default-mappings">Default Mappings</a></li>
+      <li><a href="#default-results" id="markdown-toc-default-results">Default Results</a></li>
+      <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+      <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+    </ul>
+  </li>
+</ul>
 
 <blockquote>
   <p>Deprecated Plugin</p>
diff --git a/content/plugins/config-browser/index.html b/content/plugins/config-browser/index.html
index 3d52113e9..0e2b37cbe 100644
--- a/content/plugins/config-browser/index.html
+++ b/content/plugins/config-browser/index.html
@@ -129,9 +129,20 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/config-browser/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="config-browser-plugin">Config Browser Plugin</h1>
+    <h1 class="no_toc" id="config-browser-plugin">Config Browser Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#example" id="markdown-toc-example">Example</a></li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+</ul>
+
+<h2 id="description">Description</h2>
 
 <p>The Config Browser Plugin is a simple tool to help view an application’s configuration at runtime.</p>
 
@@ -140,31 +151,28 @@
 <h2 id="features">Features</h2>
 
 <ul>
-  <li>
-    <p>Browsable view of loaded configuration</p>
-  </li>
-  <li>
-    <p>Shows all accessible action URLs</p>
-  </li>
+  <li>Browsable view of loaded configuration</li>
+  <li>Shows all accessible action URLs</li>
 </ul>
 
 <h2 id="usage">Usage</h2>
 
-<p>To use the plugin, simply copy the jar into your application.  Once installed, you can access the tool by opening to the action named <em>index</em>  in the <em>config-browser</em>  namespace.</p>
+<p>To use the plugin, simply copy the jar into your application.  Once installed, you can access the tool by opening 
+to the action named <em>index</em>  in the <em>config-browser</em>  namespace.</p>
 
 <blockquote>
   <p>In most cases (if you are using the default <em>ActionMapper</em> ), the URL is something like http://localhost:8080/starter/config-browser/index.action or http://localhost:8080/starter/config-browser/index.</p>
 </blockquote>
 
-<h3 id="example">Example</h3>
+<h2 id="example">Example</h2>
 
 <p><img src="../attachments/att30966155_config-browser-example.png" alt="config-browser-example.png" /></p>
 
-<h3 id="settings">Settings</h3>
+<h2 id="settings">Settings</h2>
 
 <p>This plugin provides no customizable settings.</p>
 
-<h3 id="installation">Installation</h3>
+<h2 id="installation">Installation</h2>
 
 <p>This plugin can be installed by copying the plugin jar into your application’s <code class="language-plaintext highlighter-rouge">/WEB-INF/lib</code> directory.  No other files need to be copied or created.</p>
 
diff --git a/content/plugins/convention/index.html b/content/plugins/convention/index.html
index 2580bf0a2..5a16d8e86 100644
--- a/content/plugins/convention/index.html
+++ b/content/plugins/convention/index.html
@@ -129,7 +129,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/convention/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
     <h1 class="no_toc" id="convention-plugin">Convention Plugin</h1>
 
diff --git a/content/plugins/dwr/index.html b/content/plugins/dwr/index.html
index 4c0fbc8c3..b4eddbd12 100644
--- a/content/plugins/dwr/index.html
+++ b/content/plugins/dwr/index.html
@@ -129,15 +129,23 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/dwr/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="dwr-plugin">DWR Plugin</h1>
-
-<p>The DWR plugin provides integration with the Ajax framework <a href="http://getahead.org/dwr">Direct Web Remoting</a></p>
+    <h1 class="no_toc" id="dwr-plugin">DWR Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+</ul>
 
-<p>This plugin works by allowing DWR to execute a Struts 2 action and return any validation errors.</p>
+<h2 id="description">Description</h2>
 
-<p>This plugin is only available with Struts 2.1.1 or later.</p>
+<p>The DWR plugin provides integration with the Ajax framework <a href="http://getahead.org/dwr">Direct Web Remoting</a>
+This plugin works by allowing DWR to execute a Struts 2 action and return any validation errors.
+This plugin is only available with Struts 2.1.1 or later.</p>
 
 <h2 id="features">Features</h2>
 
@@ -149,8 +157,7 @@
 
 <p>To expose Struts 2 validations via DWR, add this to your DWR configuration:</p>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
- <span class="nt">&lt;dwr&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;dwr&gt;</span>
     <span class="nt">&lt;allow&gt;</span>
       <span class="nt">&lt;create</span> <span class="na">creator=</span><span class="s">"new"</span> <span class="na">javascript=</span><span class="s">"validator"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.validators.DWRValidator"</span><span class="nt">/&gt;</span>
       <span class="nt">&lt;convert</span> <span class="na">converter=</span><span class="s">"bean"</span> <span class="na">match=</span><span class="s">"com.opensymphony.xwork2.ValidationAwareSupport"</span><span class="nt">/&gt;</span>
diff --git a/content/plugins/embedded-jsp/index.html b/content/plugins/embedded-jsp/index.html
index 356f6dd24..4fc2b7a4d 100644
--- a/content/plugins/embedded-jsp/index.html
+++ b/content/plugins/embedded-jsp/index.html
@@ -129,9 +129,22 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/embedded-jsp/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="embedded-jsp-plugin">Embedded JSP Plugin</h1>
+    <h1 class="no_toc" id="embedded-jsp-plugin">Embedded JSP Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a>    <ul>
+      <li><a href="#waitwhat" id="markdown-toc-waitwhat">Wait…what?</a></li>
+      <li><a href="#about-includes" id="markdown-toc-about-includes">About includes</a></li>
+    </ul>
+  </li>
+  <li><a href="#requirements" id="markdown-toc-requirements">Requirements</a>    <ul>
+      <li><a href="#tomcat" id="markdown-toc-tomcat">Tomcat</a></li>
+      <li><a href="#jetty" id="markdown-toc-jetty">Jetty</a></li>
+    </ul>
+  </li>
+</ul>
 
 <p>The Embedded JSP plugin allows you to use JSPs from the classpath (from jar files).</p>
 
diff --git a/content/plugins/index.html b/content/plugins/index.html
index 1c5b6723d..3d4a0fc46 100644
--- a/content/plugins/index.html
+++ b/content/plugins/index.html
@@ -151,6 +151,11 @@ to share with others. Several plugins are bundled with the framework, and others
     </tr>
   </thead>
   <tbody>
+    <tr>
+      <td><a href="async">Async Plugin</a></td>
+      <td>6.0.0+</td>
+      <td> </td>
+    </tr>
     <tr>
       <td><a href="bean-validation">Bean Validation Plugin</a></td>
       <td>2.5+</td>
diff --git a/content/plugins/jasperreports/index.html b/content/plugins/jasperreports/index.html
index 86d0dd449..03f63dfff 100644
--- a/content/plugins/jasperreports/index.html
+++ b/content/plugins/jasperreports/index.html
@@ -129,94 +129,78 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/jasperreports/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="jasperreports-plugin">JasperReports Plugin</h1>
+    <h1 class="no_toc" id="jasperreports-plugin">JasperReports Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a>    <ul>
+      <li><a href="#examples" id="markdown-toc-examples">Examples</a></li>
+      <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+      <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+    </ul>
+  </li>
+</ul>
 
-<p><a href="http://jasperforge.org/sf/projects/jasperreports">JasperReports</a> is a powerful open source Java (LGPL) reporting tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files.</p>
+<h2 id="description">Description</h2>
+<p><a href="http://jasperforge.org/sf/projects/jasperreports">JasperReports</a> is a powerful open source Java (LGPL) reporting
+tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files.</p>
 
 <p>The JasperReports plugin enables Actions to create high-quality reports as results.</p>
 
 <h2 id="features">Features</h2>
 
 <ul>
-  <li>Allows Actions to be rendered through JasperReports</li>
+  <li>Allows actions to be rendered through JasperReports</li>
 </ul>
 
 <h2 id="usage">Usage</h2>
 
-<p>To use this plugin, have your packages that contain the target actions extend the provided <code class="language-plaintext highlighter-rouge">jasperreports-default</code> package, which contains the <code class="language-plaintext highlighter-rouge">jasper</code> result type.  Then, simply use the result type in the desired actions.  The result takes the following parameters:</p>
-
-<p> <p>
- Generates a JasperReports report using the specified format or PDF if no
- format is specified.
- </p>
-</p>
-
-<p>
- <ul>
-
- <li><b>location (default)</b> - the location where the compiled jasper report
- definition is (foo.jasper), relative from current URL.</li>
- <li><b>dataSource (required)</b> - the EL expression used to retrieve the
- datasource from the value stack (usually a List).</li>
- <li><b>parse</b> - true by default. If set to false, the location param will
- not be parsed for EL expressions.</li>
- <li><b>format</b> - the format in which the report should be generated. Valid
- values can be found in {@link JasperReportConstants}. If no format is
- specified, PDF will be used.</li>
- <li><b>contentDisposition</b> - disposition (defaults to "inline", values are
- typically <i>filename="document.pdf"</i>).</li>
- <li><b>documentName</b> - name of the document (will generate the http header
- <code>Content-disposition = X; filename=X.[format]</code>).</li>
- <li><b>delimiter</b> - the delimiter used when generating CSV reports. By
- default, the character used is ",".</li>
- <li><b>imageServletUrl</b> - name of the url that, when prefixed with the
- context page, can return report images.</li>
- <li>
- <b>reportParameters</b> - (2.1.2+) OGNL expression used to retrieve a map of
- report parameters from the value stack. The parameters may be accessed
- in the report via the usual JR mechanism and might include data not
- part of the dataSource, such as the user name of the report creator, etc.
- </li>
- <li>
- <b>exportParameters</b> - (2.1.2+) OGNL expression used to retrieve a map of
- JR exporter parameters from the value stack. The export parameters are
- used to customize the JR export. For example, a PDF export might enable
- encryption and set the user password to a string known to the report creator.
- </li>
- <li>
- <b>connection</b> - (2.1.7+) JDBC Connection which can be passed to the
- report instead of dataSource
- </li>
- <li><b>wrapField</b> - (2.3.18+) defines if fields should warp with ValueStackDataSource
- see https://issues.apache.org/jira/browse/WW-3698 for more details
- </li>
- </ul>
- <p>
- This result follows the same rules from {@link StrutsResultSupport}.
- Specifically, all parameters will be parsed if the "parse" parameter
- is not set to false.
- </p>
-</p>
+<p>To use this plugin, have your packages that contain the target actions extend the provided <code class="language-plaintext highlighter-rouge">jasperreports-default</code> 
+package, which contains the <code class="language-plaintext highlighter-rouge">jasper</code> result type.  Then, simply use the result type in the desired actions.<br />
+The result takes the following parameters:</p>
 
-<h3 id="examples">Examples</h3>
+<ul>
+  <li>location (default) - the location where the compiled jasper report definition is (foo.jasper), relative from current URL</li>
+  <li>dataSource (required) - the EL expression used to retrieve the datasource from the value stack (usually a List)</li>
+  <li>parse - <code class="language-plaintext highlighter-rouge">true</code> by default, if set to false, the location param will not be parsed for EL expressions</li>
+  <li>format - the format in which the report should be generated. Valid  values can be found in <code class="language-plaintext highlighter-rouge">JasperReportConstants</code>. 
+If no format is specified, PDF will be used</li>
+  <li>contentDisposition - disposition (defaults to “inline”, values are typically <code class="language-plaintext highlighter-rouge">filename="document.pdf"</code>)</li>
+  <li>documentName - name of the document (will generate the http header <code class="language-plaintext highlighter-rouge">Content-disposition = X; filename=X.[format]</code>)</li>
+  <li>delimiter - the delimiter used when generating CSV reports. By default, the character used is “,”</li>
+  <li>imageServletUrl - name of the url that, when prefixed with the context page, can return report images</li>
+  <li>reportParameters - (since 2.1.2+) OGNL expression used to retrieve a map of report parameters from the value stack. 
+The parameters may be accessed in the report via the usual JR mechanism and might include data not part of the 
+dataSource, such as the user name of the report creator, etc.</li>
+  <li>exportParameters - (since 2.1.2+) OGNL expression used to retrieve a map of JR exporter parameters from the value stack.
+The export parameters are used to customize the JR export. For example, a PDF export might enable encryption 
+and set the user password to a string known to the report creator.</li>
+  <li>connection - (since 2.1.7+) JDBC Connection which can be passed to the report instead of dataSource</li>
+  <li>wrapField - (since 2.3.18+) defines if fields should warp with ValueStackDataSource see
+<a href="https://issues.apache.org/jira/browse/WW-3698">WW-3698</a> for more details</li>
+</ul>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;result</span> <span class="na">name=</span><span class="s">"success"</span> <span class="na">type=</span><span class="s">"jasper"</span><span class="nt">&gt;</span>
-   <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"location"</span><span class="nt">&gt;</span>foo.jasper<span class="nt">&lt;/param&gt;</span>
-   <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"dataSource"</span><span class="nt">&gt;</span>mySource<span class="nt">&lt;/param&gt;</span>
-   <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"format"</span><span class="nt">&gt;</span>CSV<span class="nt">&lt;/param&gt;</span>
- <span class="nt">&lt;/result&gt;</span>
+<p>This result follows the same rules from {@link StrutsResultSupport}. Specifically, all parameters will be parsed 
+if the “parse” parameter is not set to false.</p>
 
+<h3 id="examples">Examples</h3>
+
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;result</span> <span class="na">name=</span><span class="s">"success"</span> <span class="na">type=</span><span class="s">"jasper"</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"location"</span><span class="nt">&gt;</span>foo.jasper<span class="nt">&lt;/param&gt;</span>
+    <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"dataSource"</span><span class="nt">&gt;</span>mySource<span class="nt">&lt;/param&gt;</span>
+    <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"format"</span><span class="nt">&gt;</span>CSV<span class="nt">&lt;/param&gt;</span>
+<span class="nt">&lt;/result&gt;</span>
 </code></pre></div></div>
 
 <p>or for pdf:</p>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;result</span> <span class="na">name=</span><span class="s">"success"</span> <span class="na">type=</span><span class="s">"jasper"</span><span class="nt">&gt;</span>
-   <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"location"</span><span class="nt">&gt;</span>foo.jasper<span class="nt">&lt;/param&gt;</span>
-   <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"dataSource"</span><span class="nt">&gt;</span>mySource<span class="nt">&lt;/param&gt;</span>
- <span class="nt">&lt;/result&gt;</span>
-
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;result</span> <span class="na">name=</span><span class="s">"success"</span> <span class="na">type=</span><span class="s">"jasper"</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"location"</span><span class="nt">&gt;</span>foo.jasper<span class="nt">&lt;/param&gt;</span>
+    <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"dataSource"</span><span class="nt">&gt;</span>mySource<span class="nt">&lt;/param&gt;</span>
+<span class="nt">&lt;/result&gt;</span>
 </code></pre></div></div>
 
 <h3 id="settings">Settings</h3>
@@ -225,9 +209,8 @@
 
 <h3 id="installation">Installation</h3>
 
-<p>This plugin can be installed by copying the plugin jar into your application’s <code class="language-plaintext highlighter-rouge">/WEB-INF/lib</code> directory.  No other files need to be copied or created.</p>
-
-<hr />
+<p>This plugin can be installed by copying the plugin jar into your application’s <code class="language-plaintext highlighter-rouge">/WEB-INF/lib</code> directory.<br />
+No other files need to be copied or created.</p>
 
 <blockquote>
   <p>See also <a href="http://www.vitarara.org/cms/node/131http://www.vitarara.org/cms/node/131">Compiling JasperReports JRXML Files with Maven</a> (Mark Menard)</p>
diff --git a/content/plugins/java-8-support/index.html b/content/plugins/java-8-support/index.html
index 6c53dc3c8..7f535e848 100644
--- a/content/plugins/java-8-support/index.html
+++ b/content/plugins/java-8-support/index.html
@@ -129,17 +129,21 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/java-8-support/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="java-8-support-plugin">Java 8 Support Plugin</h1>
+    <h1 class="no_toc" id="java-8-support-plugin">Java 8 Support Plugin</h1>
 
-<p>This plugin was dropped in Struts 2.5.5 as Struts Core is using ASM5 now which supports Java8.</p>
+<ul id="markdown-toc">
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#supported-java-8-features" id="markdown-toc-supported-java-8-features">Supported Java 8 features</a></li>
+</ul>
 
-<p>Adds support for Java 8 - to allow use the latest features of the language with Struts actions.</p>
+<p>This plugin was dropped in Struts 2.5.5 as Struts Core is using ASM5 now which supports Java8.
+Adds support for Java 8 - to allow use the latest features of the language with Struts actions.</p>
 
 <h2 id="usage">Usage</h2>
 
-<p>You must define it as a dependency in <code class="language-plaintext highlighter-rouge">pom.xml</code> and exclude the old version of ASM used with <code class="language-plaintext highlighter-rouge">xwork-core</code>, see a code snippet below:</p>
+<p>You must define it as a dependency in <code class="language-plaintext highlighter-rouge">pom.xml</code> and exclude the old version of ASM used with <code class="language-plaintext highlighter-rouge">xwork-core</code>, see a code snippet below:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;dependency&gt;</span>
     <span class="nt">&lt;groupId&gt;</span>org.apache.struts.xwork<span class="nt">&lt;/groupId&gt;</span>
@@ -157,12 +161,12 @@
 <span class="nt">&lt;/dependency&gt;</span>
 </code></pre></div></div>
 
-<p>If you don’t use Maven to manage the dependencies, please be sure to replace <code class="language-plaintext highlighter-rouge">asm.jar</code> and <code class="language-plaintext highlighter-rouge">asm-commons.jar</code> with appropriated ASM 5 versions.</p>
+<p>If you don’t use Maven to manage the dependencies, please be sure to replace <code class="language-plaintext highlighter-rouge">asm.jar</code> and <code class="language-plaintext highlighter-rouge">asm-commons.jar</code> with appropriated ASM 5 versions.</p>
 
 <h2 id="supported-java-8-features">Supported Java 8 features</h2>
 
 <ul>
-  <li>Lambda Expressions in actions when using them with the Convention plugin</li>
+  <li>Lambda Expressions in actions when using them with the Convention plugin</li>
 </ul>
 
   </section>
diff --git a/content/plugins/javatemplates/index.html b/content/plugins/javatemplates/index.html
index e49fb5a28..52cff8f6c 100644
--- a/content/plugins/javatemplates/index.html
+++ b/content/plugins/javatemplates/index.html
@@ -129,9 +129,15 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/javatemplates/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="javatemplates-plugin">Javatemplates Plugin</h1>
+    <h1 class="no_toc" id="javatemplates-plugin">Javatemplates Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+  <li><a href="#supported-tags" id="markdown-toc-supported-tags">Supported tags</a></li>
+  <li><a href="#performance-benchmark" id="markdown-toc-performance-benchmark">Performance benchmark</a></li>
+</ul>
 
 <p>This plugin provides a faster Java implementation of tags in the “simple” theme.</p>
 
@@ -153,25 +159,25 @@
 <h2 id="supported-tags">Supported tags</h2>
 
 <ul>
-  <li><em>a</em></li>
-  <li><em>actionerror</em></li>
-  <li><em>actionmessage</em></li>
-  <li><em>checkbox</em></li>
-  <li><em>datetextfield</em></li>
-  <li><em>div</em></li>
-  <li><em>fielderror</em></li>
-  <li><em>file</em></li>
-  <li><em>form</em></li>
-  <li><em>head</em></li>
-  <li><em>hidden</em></li>
-  <li><em>label</em></li>
-  <li><em>password</em></li>
-  <li><em>select</em></li>
-  <li><em>reset</em></li>
-  <li><em>submit</em></li>
-  <li><em>textfield</em></li>
-  <li><em>textarea</em></li>
-  <li><em>token</em></li>
+  <li><code class="language-plaintext highlighter-rouge">a</code></li>
+  <li><code class="language-plaintext highlighter-rouge">actionerror</code></li>
+  <li><code class="language-plaintext highlighter-rouge">actionmessage</code></li>
+  <li><code class="language-plaintext highlighter-rouge">checkbox</code></li>
+  <li><code class="language-plaintext highlighter-rouge">datetextfield</code></li>
+  <li><code class="language-plaintext highlighter-rouge">div</code></li>
+  <li><code class="language-plaintext highlighter-rouge">fielderror</code></li>
+  <li><code class="language-plaintext highlighter-rouge">file</code></li>
+  <li><code class="language-plaintext highlighter-rouge">form</code></li>
+  <li><code class="language-plaintext highlighter-rouge">head</code></li>
+  <li><code class="language-plaintext highlighter-rouge">hidden</code></li>
+  <li><code class="language-plaintext highlighter-rouge">label</code></li>
+  <li><code class="language-plaintext highlighter-rouge">password</code></li>
+  <li><code class="language-plaintext highlighter-rouge">select</code></li>
+  <li><code class="language-plaintext highlighter-rouge">reset</code></li>
+  <li><code class="language-plaintext highlighter-rouge">submit</code></li>
+  <li><code class="language-plaintext highlighter-rouge">textfield</code></li>
+  <li><code class="language-plaintext highlighter-rouge">textarea</code></li>
+  <li><code class="language-plaintext highlighter-rouge">token</code></li>
 </ul>
 
 <h2 id="performance-benchmark">Performance benchmark</h2>
diff --git a/content/plugins/jfreechart/index.html b/content/plugins/jfreechart/index.html
index 6f924bc10..09b707ebf 100644
--- a/content/plugins/jfreechart/index.html
+++ b/content/plugins/jfreechart/index.html
@@ -129,9 +129,25 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/jfreechart/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="jfreechart-plugin">JFreeChart Plugin</h1>
+    <h1 class="no_toc" id="jfreechart-plugin">JFreeChart Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a>    <ul>
+      <li><a href="#future-work" id="markdown-toc-future-work">Future Work</a></li>
+    </ul>
+  </li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a>    <ul>
+      <li><a href="#example" id="markdown-toc-example">Example</a></li>
+      <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+      <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+    </ul>
+  </li>
+</ul>
+
+<h2 id="description">Description</h2>
 
 <p><a href="http://www.jfree.org/jfreechart/">JFreeChart</a> is a free 100% Java (LGPL) chart library that makes it easy for 
 developers to display professional quality charts in their applications.</p>
diff --git a/content/plugins/jsf/index.html b/content/plugins/jsf/index.html
index 0062095e0..ab4dc60c4 100644
--- a/content/plugins/jsf/index.html
+++ b/content/plugins/jsf/index.html
@@ -129,9 +129,23 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/jsf/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="jsf-plugin">JSF Plugin</h1>
+    <h1 class="no_toc" id="jsf-plugin">JSF Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a>    <ul>
+      <li><a href="#example" id="markdown-toc-example">Example</a></li>
+      <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+      <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+    </ul>
+  </li>
+  <li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
+</ul>
+
+<h2 id="description">Description</h2>
 
 <p><a href="http://java.sun.com/j2ee/javaserverfaces">JavaServer Faces</a> technology simplifies building user interfaces for JavaServer applications. Developers of various skill levels can quickly build web applications by: assembling reusable UI components in a page; connecting these components to an application data source; and wiring client-generated events to server-side event handlers.</p>
 
diff --git a/content/plugins/json/index.html b/content/plugins/json/index.html
index 34f2eb8d7..8b7fa3274 100644
--- a/content/plugins/json/index.html
+++ b/content/plugins/json/index.html
@@ -129,7 +129,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/json/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
     <h1 class="no_toc" id="json-plugin">JSON Plugin</h1>
 
diff --git a/content/plugins/junit/index.html b/content/plugins/junit/index.html
index 092d2f541..678526ba3 100644
--- a/content/plugins/junit/index.html
+++ b/content/plugins/junit/index.html
@@ -129,7 +129,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/junit/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
     <h1 class="no_toc" id="junit-plugin">JUnit plugin</h1>
 
diff --git a/content/plugins/osgi/index.html b/content/plugins/osgi/index.html
index 96a910dba..ae664306c 100644
--- a/content/plugins/osgi/index.html
+++ b/content/plugins/osgi/index.html
@@ -129,9 +129,27 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/osgi/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="osgi-plugin">OSGi Plugin</h1>
+    <h1 class="no_toc" id="osgi-plugin">OSGi Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#overview" id="markdown-toc-overview">Overview</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#missing-features" id="markdown-toc-missing-features">Missing Features</a></li>
+  <li><a href="#about-run-levels" id="markdown-toc-about-run-levels">About Run levels</a></li>
+  <li><a href="#simple-usage" id="markdown-toc-simple-usage">Simple Usage</a></li>
+  <li><a href="#using-spring" id="markdown-toc-using-spring">Using Spring</a></li>
+  <li><a href="#using-velocity" id="markdown-toc-using-velocity">Using Velocity</a></li>
+  <li><a href="#using-the-convention-plugin" id="markdown-toc-using-the-convention-plugin">Using The Convention Plugin</a></li>
+  <li><a href="#the-osgi-interceptor" id="markdown-toc-the-osgi-interceptor">The OSGi interceptor</a></li>
+  <li><a href="#admin-bundle" id="markdown-toc-admin-bundle">Admin bundle</a></li>
+  <li><a href="#about-stoppingstarting-bundles" id="markdown-toc-about-stoppingstarting-bundles">About stopping/starting bundles</a></li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#building-bundles-with-maven" id="markdown-toc-building-bundles-with-maven">Building bundles with Maven</a></li>
+  <li><a href="#struts-osgi--spring-osgi-diagram" id="markdown-toc-struts-osgi--spring-osgi-diagram">Struts OSGi + Spring OSGi diagram</a></li>
+  <li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
+</ul>
 
 <blockquote>
   <p>This plugin got marked as deprecated since Struts 2.6!</p>
diff --git a/content/plugins/oval/index.html b/content/plugins/oval/index.html
index 6a76460bc..c101b7c5d 100644
--- a/content/plugins/oval/index.html
+++ b/content/plugins/oval/index.html
@@ -129,9 +129,22 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/oval/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="oval-plugin">OVal Plugin</h1>
+    <h1 class="no_toc" id="oval-plugin">OVal Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#overview" id="markdown-toc-overview">Overview</a></li>
+  <li><a href="#interceptors" id="markdown-toc-interceptors">Interceptors</a></li>
+  <li><a href="#annotations" id="markdown-toc-annotations">Annotations</a></li>
+  <li><a href="#xml-configuration" id="markdown-toc-xml-configuration">XML Configuration</a></li>
+  <li><a href="#profiles" id="markdown-toc-profiles">Profiles</a></li>
+  <li><a href="#internationalization-of-messages" id="markdown-toc-internationalization-of-messages">Internationalization of messages</a></li>
+  <li><a href="#the-oval-validation-interceptor" id="markdown-toc-the-oval-validation-interceptor">The OVal Validation Interceptor</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+  <li><a href="#configuration-reference" id="markdown-toc-configuration-reference">Configuration reference</a></li>
+  <li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
+</ul>
 
 <blockquote>
   <p>This plugin got marked as deprecated since Struts 2.6!</p>
diff --git a/content/plugins/plexus/index.html b/content/plugins/plexus/index.html
index 777f6e876..77ce7ea28 100644
--- a/content/plugins/plexus/index.html
+++ b/content/plugins/plexus/index.html
@@ -129,9 +129,19 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/plexus/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="plexus-plugin">Plexus Plugin</h1>
+    <h1 class="no_toc" id="plexus-plugin">Plexus Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a>    <ul>
+      <li><a href="#example" id="markdown-toc-example">Example</a></li>
+      <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+      <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+    </ul>
+  </li>
+</ul>
 
 <blockquote>
   <p>This plugin got marked as deprecated since Struts 2.6!</p>
diff --git a/content/plugins/portlet-tiles/index.html b/content/plugins/portlet-tiles/index.html
index 43d7af4e1..b6a1d1a60 100644
--- a/content/plugins/portlet-tiles/index.html
+++ b/content/plugins/portlet-tiles/index.html
@@ -129,9 +129,15 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/portlet-tiles/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="portlet-tiles-plugin">Portlet Tiles Plugin</h1>
+    <h1 class="no_toc" id="portlet-tiles-plugin">Portlet Tiles Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+</ul>
 
 <blockquote>
   <p>This plugin got marked as deprecated since Struts 2.6!</p>
diff --git a/content/plugins/portlet/index.html b/content/plugins/portlet/index.html
index 142d0cdf8..5bbc85a81 100644
--- a/content/plugins/portlet/index.html
+++ b/content/plugins/portlet/index.html
@@ -129,9 +129,26 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/portlet/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="portlet-plugin">Portlet Plugin</h1>
+    <h1 class="no_toc" id="portlet-plugin">Portlet Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#documentation" id="markdown-toc-documentation">Documentation</a>    <ul>
+      <li><a href="#portlet-class" id="markdown-toc-portlet-class">portlet-class</a></li>
+      <li><a href="#portlet-init-parameters" id="markdown-toc-portlet-init-parameters">Portlet Init Parameters</a></li>
+      <li><a href="#webxml" id="markdown-toc-webxml">web.xml</a></li>
+      <li><a href="#portlet-phases" id="markdown-toc-portlet-phases">Portlet Phases</a></li>
+      <li><a href="#portlet-result-dispatching" id="markdown-toc-portlet-result-dispatching">Portlet Result Dispatching</a>        <ul>
+          <li><a href="#redirectaction" id="markdown-toc-redirectaction">redirectAction</a></li>
+        </ul>
+      </li>
+      <li><a href="#surl-and-sform-tags" id="markdown-toc-surl-and-sform-tags">s:url and s:form tags</a></li>
+      <li><a href="#security" id="markdown-toc-security">Security</a></li>
+      <li><a href="#other-resources" id="markdown-toc-other-resources">Other resources</a></li>
+    </ul>
+  </li>
+</ul>
 
 <blockquote>
   <p>This plugin got marked as deprecated since Struts 2.6!</p>
diff --git a/content/plugins/rest/index.html b/content/plugins/rest/index.html
index f4eaaada0..2db5f2739 100644
--- a/content/plugins/rest/index.html
+++ b/content/plugins/rest/index.html
@@ -129,7 +129,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/rest/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
     <h1 class="no_toc" id="rest-plugin">REST Plugin</h1>
 
diff --git a/content/plugins/sitegraph/index.html b/content/plugins/sitegraph/index.html
index 7c778bdef..a91d5b3de 100644
--- a/content/plugins/sitegraph/index.html
+++ b/content/plugins/sitegraph/index.html
@@ -129,19 +129,32 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/sitegraph/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="sitegraph-plugin">SiteGraph Plugin</h1>
+    <h1 class="no_toc" id="sitegraph-plugin">SiteGraph Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#understanding-the-output" id="markdown-toc-understanding-the-output">Understanding the Output</a></li>
+  <li><a href="#requirements" id="markdown-toc-requirements">Requirements</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a>    <ul>
+      <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+      <li><a href="#automatic-execution" id="markdown-toc-automatic-execution">Automatic Execution</a></li>
+    </ul>
+  </li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+</ul>
 
 <blockquote>
   <p>This plugin got marked as deprecated since Struts 2.5.11!</p>
 </blockquote>
 
-<p>The SiteGraph plugin generates graphical diagrams representing the flow of your web application.</p>
+<h2 id="description">Description</h2>
 
-<p>SiteGraph works by parsing your configuration files, Action classes, and view files (JSP, Velocity, and FreeMarker), and displaying a visual map.</p>
-
-<p>Additional information can be found in the JavaDocs:</p>
+<p>The SiteGraph plugin generates graphical diagrams representing the flow of your web application.
+SiteGraph works by parsing your configuration files, Action classes, and view files (JSP, Velocity, and FreeMarker), 
+and displaying a visual map. Additional information can be found in the JavaDocs:</p>
 
 <div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code> * &lt;p&gt;
  * SiteGraph is a tool that renders out GraphViz-generated images depicting your
@@ -149,76 +162,49 @@
  * and that the "dot" executable be in your command path. You can find GraphViz
  * at http://www.graphviz.org.
  * &lt;/p&gt;
-
 </code></pre></div></div>
 
-<p><strong>Understanding the Output</strong></p>
+<h2 id="understanding-the-output">Understanding the Output</h2>
 
 <p>There are several key things to notice when looking at the output from SiteGraph:</p>
 
 <ul>
-  <li>
-    <p>Boxes: those shaded red indicate an action; those shaded green indicate a view file (JSP, etc).</p>
-  </li>
-  <li>
-    <p>Links: arrows colored green imply that no new HTTP request is being made; black arrows indicate a new HTTP request.</p>
-  </li>
-  <li>
-    <p>Link labels: labels may sometimes contain additional useful information. For example, a label of <strong>href</strong> means that the link behavior is that of a hyper-text reference. The complete label behaviors are provided:</p>
-
+  <li>Boxes: those shaded red indicate an action; those shaded green indicate a view file (JSP, etc).</li>
+  <li>Links: arrows colored green imply that no new HTTP request is being made; black arrows indicate a new HTTP request.</li>
+  <li>Link labels: labels may sometimes contain additional useful information. For example, a label of <strong>href</strong> means that
+the link behavior is that of a hyper-text reference. The complete label behaviors are provided:
     <ul>
-      <li>
-        <p><strong>href</strong> - a view file references an action by name (typically ending with the extension “.action”)</p>
-      </li>
-      <li>
-        <p><strong>action</strong> - a view file makes a call to the <em>action</em>  tag</p>
-      </li>
-      <li>
-        <p><strong>form</strong> - a view file is linked to an action using the <em>form</em>  tag</p>
-      </li>
-      <li>
-        <p><strong>redirect</strong> - an action is redirecting to another view or action</p>
-      </li>
-      <li>
-        <p><strong>! notation</strong> - a link to an action overrides the method to invoke</p>
-      </li>
+      <li><strong>href</strong> - a view file references an action by name (typically ending with the extension “.action”)</li>
+      <li><strong>action</strong> - a view file makes a call to the <em>action</em>  tag</li>
+      <li><strong>form</strong> - a view file is linked to an action using the <em>form</em>  tag</li>
+      <li><strong>redirect</strong> - an action is redirecting to another view or action</li>
+      <li><strong>! notation</strong> - a link to an action overrides the method to invoke</li>
     </ul>
   </li>
 </ul>
 
-<p><strong>Requirements</strong></p>
+<h2 id="requirements">Requirements</h2>
 
 <p>SiteGraph requires that your view files be structured in a very specific way. Because it has to read these files, only certain styles are supported. The requirements are:</p>
 
 <ul>
-  <li>
-    <p>The JSP tags must use the “s” namespace.</p>
-
+  <li>The JSP tags must use the “s” namespace.
     <ul>
-      <li>
-        <p>In JSP: &lt;s:xxx/&gt;</p>
-      </li>
-      <li>
-        <p>In FreeMarker: &lt;@s.xxx/&gt;</p>
-      </li>
-      <li>
-        <p>In Velocity: N/A</p>
-      </li>
+      <li>In JSP: <code class="language-plaintext highlighter-rouge">&lt;s:xxx/&gt;</code></li>
+      <li>In FreeMarker: <code class="language-plaintext highlighter-rouge">&lt;@s.xxx/&gt;</code></li>
+      <li>In Velocity: N/A</li>
     </ul>
   </li>
-  <li>
-    <p>Use of the <em>form</em>  tag and <em>action</em>  tag must be linking directly to the action name (and optional namespace). This means that &lt;s:form action=”foo”/&gt; is OK, but &lt;s:form action=”foo.action”/&gt; is not.
- Here is also a short overview of what it does and why a developer would want to use it.</p>
-  </li>
+  <li>Use of the <em>form</em>  tag and <em>action</em>  tag must be linking directly to the action name (and optional namespace). 
+This means that <code class="language-plaintext highlighter-rouge">&lt;s:form action="foo"/&gt;</code> is OK, but <code class="language-plaintext highlighter-rouge">&lt;s:form action="foo.action"/&gt;</code> is not.
+Here is also a short overview of what it does and why a developer would want to use it.</li>
 </ul>
 
-<p><strong>Features</strong></p>
+<h2 id="features">Features</h2>
 
-<ul>
-  <li>Generates a graphical view of your web application</li>
-</ul>
+<p>Generates a graphical view of your web application</p>
 
-<h2 id="usage">Usage</h2>
+<h3 id="usage">Usage</h3>
 
 <p>You can use SiteGraph with the following command:</p>
 
@@ -227,7 +213,6 @@
      -views VIEWS_DIRS
      -output OUTPUT
      [-ns NAMESPACE]
-
 </code></pre></div></div>
 
 <p>Where:</p>
@@ -237,16 +222,22 @@
        VIEWS_DIRS =&gt; comma seperated list of dirs containing JSPs, VMs, etc
        OUPUT      =&gt; the directory where the output should go
        NAMESPACE  =&gt; the namespace path restriction (/, /foo, etc)
-
 </code></pre></div></div>
 
-<p>You must either supply the correct classpath when invoking the SiteGraph tool or place the Sitegraph plugin in the same directory as the dependent jars. Specifically, the XWork jar, Struts jar, and their dependencies must be included in the classpath. Futhermore, <strong>you must also include your Action class files referenced in</strong> struts.xml. Without the proper class path entries, SiteGraph will not function properly.</p>
+<p>You must either supply the correct classpath when invoking the SiteGraph tool or place the Sitegraph plugin in the same 
+directory as the dependent jars. Specifically, the XWork jar, Struts jar, and their dependencies must be included 
+in the classpath. Futhermore, <strong>you must also include your Action class files referenced in</strong> struts.xml. 
+Without the proper class path entries, SiteGraph will not function properly.</p>
 
-<p>Once you have run SiteGraph, check the directory specified in the “output” argument (OUTPUT). In there you will find two files: <strong>out.dot</strong> and <strong>out.gif</strong>. You may immediately open up <strong>out.gif</strong> and view the web application flow. However, you may also wish to either run the <strong>out.dot</strong> file through a different GraphVis layout engine (neato, twopi, etc), so the original dot file is provided as well. You may also wish to edit the dot [...]
+<p>Once you have run SiteGraph, check the directory specified in the “output” argument (OUTPUT). In there you will find 
+two files: <strong>out.dot</strong> and <strong>out.gif</strong>. You may immediately open up <strong>out.gif</strong> and view the web application flow. 
+However, you may also wish to either run the <strong>out.dot</strong> file through a different GraphVis layout engine (neato, twopi, etc), 
+so the original dot file is provided as well. You may also wish to edit the dot file before rendering the final flow diagram.</p>
 
-<p><strong>Automatic Execution</strong></p>
+<h3 id="automatic-execution">Automatic Execution</h3>
 
-<p>Some advanced users may wish to execute SiteGraph from within their application - this could be required if you are developing an application that supports plugin capabilities. This can easily be done. See the JavaDocs for more info:</p>
+<p>Some advanced users may wish to execute SiteGraph from within their application - this could be required if you are 
+developing an application that supports plugin capabilities. This can easily be done. See the JavaDocs for more info:</p>
 
 <div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code> * &lt;p&gt;
  * If you wish to use SiteGraph through its API rather than through the command line,
@@ -254,28 +245,27 @@
  * optionally specify a {@link Writer} to output the dot content to, and then call
  * {@link #prepare()}.
  * &lt;/p&gt;
-
 </code></pre></div></div>
 
 <p>The command line version of SiteGraph does exactly this (except for overriding the Writer):</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="nc">SiteGraph</span> <span class="n">siteGraph</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">SiteGraph</span><span class="o">(</span><span class="n">configDir</span><span class="o">,</span> <span class="n">views</span><span class="o">,</span> <span class="n">output</span><span class="o">,</span> <span class="n">namespace</span><span class="o" [...]
-        <span class="n">siteGraph</span><span class="o">.</span><span class="na">prepare</span><span class="o">();</span>
-        <span class="n">siteGraph</span><span class="o">.</span><span class="na">render</span><span class="o">();</span>
-
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="nc">SiteGraph</span> <span class="n">siteGraph</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">SiteGraph</span><span class="o">(</span><span class="n">configDir</span><span class="o">,</span> <span class="n">views</span><span class="o">,</span> <span class="n">output</span><span class="o">,</span> <span class="n">namespace</span><span class="o">);</span>
+    <span class="n">siteGraph</span><span class="o">.</span><span class="na">prepare</span><span class="o">();</span>
+    <span class="n">siteGraph</span><span class="o">.</span><span class="na">render</span><span class="o">();</span>
 </code></pre></div></div>
 
-<p><strong>Example</strong></p>
-
-<p><strong>Settings</strong></p>
+<h2 id="settings">Settings</h2>
 
 <p>This plugin doesn’t allow for any global settings.</p>
 
-<p><strong>Installation</strong></p>
+<h2 id="installation">Installation</h2>
 
-<p>The SiteGraph plugin jar is distributed with Struts, so if you’re up and running, you don’t need to do download any additional Java packages. However, SiteGraph does require the “dot” package by <a href="http://www.graphviz.org">GraphViz</a>.</p>
+<p>The SiteGraph plugin jar is distributed with Struts, so if you’re up and running, you don’t need to do download
+any additional Java packages. However, SiteGraph does require the “dot” package by <a href="http://www.graphviz.org">GraphViz</a>.</p>
 
-<p>You’ll need to download the latest version of GraphViz and make sure that the dot executable (dot.exe in Windows) is in your command path. In Windows the GraphViz installer typically automatically adds <code class="language-plaintext highlighter-rouge">dot.exe</code> to your path. However, you may need to do this by hand depending on your system configuration.</p>
+<p>You’ll need to download the latest version of GraphViz and make sure that the dot executable (dot.exe in Windows) 
+is in your command path. In Windows the GraphViz installer typically automatically adds <code class="language-plaintext highlighter-rouge">dot.exe</code> to your path. 
+However, you may need to do this by hand depending on your system configuration.</p>
 
   </section>
 </article>
diff --git a/content/plugins/sitemesh/index.html b/content/plugins/sitemesh/index.html
index e1c2a4a9c..ffdabb6fe 100644
--- a/content/plugins/sitemesh/index.html
+++ b/content/plugins/sitemesh/index.html
@@ -129,9 +129,24 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/sitemesh/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="sitemesh-plugin">SiteMesh Plugin</h1>
+    <h1 class="no_toc" id="sitemesh-plugin">SiteMesh Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#about-sitemesh" id="markdown-toc-about-sitemesh">About SiteMesh</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#freemarker--and-velocity-decorators" id="markdown-toc-freemarker--and-velocity-decorators">FreeMarker  and Velocity Decorators</a>    <ul>
+      <li><a href="#freemarker" id="markdown-toc-freemarker">FreeMarker</a></li>
+      <li><a href="#velocity" id="markdown-toc-velocity">Velocity</a></li>
+      <li><a href="#full-integration-with-sitemesh-2--freemarker-242--velocity-13--including-struts-2-tags-valuestack-and-freemarkermanager-statics" id="markdown-toc-full-integration-with-sitemesh-2--freemarker-242--velocity-13--including-struts-2-tags-valuestack-and-freemarkermanager-statics">Full integration with SiteMesh 2 + Freemarker 2.4.2 + Velocity 1.3 , including Struts 2 Tags, ValueStack, and FreemarkerManager statics.</a></li>
+    </ul>
+  </li>
+  <li><a href="#example" id="markdown-toc-example">Example</a></li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+</ul>
 
 <blockquote>
   <p>This plugin got marked as deprecated since Struts 2.6!</p>
@@ -146,25 +161,23 @@ framework to aid in creating large sites consisting of many pages for which a co
 
 <p>The Sitemesh plugin allows Sitemesh templates to access framework resources.</p>
 
-<p>The framework stores all its value stack information as request attributes, meaning that if you wish to display data that is on the stack (or even the ActionContext), you can do so by using the normal tag libraries that come with the framework. That’s it!</p>
+<p>The framework stores all its value stack information as request attributes, meaning that if you wish to display data 
+that is on the stack (or even the ActionContext), you can do so by using the normal tag libraries that come 
+with the framework. That’s it!</p>
 
 <h2 id="features">Features</h2>
 
 <ul>
-  <li>
-    <p>Can use Struts tags in Sitemesh decorator templates</p>
-  </li>
-  <li>
-    <p>Sitemesh decorators can be written in FreeMarker as well as Velocity and JSP</p>
-  </li>
+  <li>Can use Struts tags in Sitemesh decorator templates</li>
+  <li>Sitemesh decorators can be written in FreeMarker as well as Velocity and JSP</li>
 </ul>
 
 <h2 id="usage">Usage</h2>
 
-<p>From 2.2+ the new <code class="language-plaintext highlighter-rouge">com.opensymphony.sitemesh.webapp.SiteMeshFilter</code> filter and Struts <code class="language-plaintext highlighter-rouge">org.apache.struts2.dispatcher.ng.listener.StrutsListener</code> context listener must be added to <code class="language-plaintext highlighter-rouge">web.xml</code>, like:</p>
+<p>From 2.2+ the new <code class="language-plaintext highlighter-rouge">com.opensymphony.sitemesh.webapp.SiteMeshFilter</code> filter 
+and Struts <code class="language-plaintext highlighter-rouge">org.apache.struts2.dispatcher.ng.listener.StrutsListener</code> context listener must be added to <code class="language-plaintext highlighter-rouge">web.xml</code>, like:</p>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="nt">&lt;filter&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;filter&gt;</span>
     <span class="nt">&lt;filter-name&gt;</span>sitemesh<span class="nt">&lt;/filter-name&gt;</span>
     <span class="nt">&lt;filter-class&gt;</span>com.opensymphony.sitemesh.webapp.SiteMeshFilter<span class="nt">&lt;/filter-class&gt;</span>
 <span class="nt">&lt;/filter&gt;</span> 
@@ -177,11 +190,13 @@ framework to aid in creating large sites consisting of many pages for which a co
 
 <h2 id="freemarker--and-velocity-decorators">FreeMarker  and Velocity Decorators</h2>
 
-<p>The plugin provides an extension of the SiteMesh <em>Velocity</em>  and <em>FreeMarker</em>  servlets. These servlets provide the standard variables and <em>Struts Tags</em>  that you used to create views in your favourite template language.</p>
+<p>The plugin provides an extension of the SiteMesh <em>Velocity</em>  and <em>FreeMarker</em>  servlets. These servlets provide 
+the standard variables and <em>Struts Tags</em>  that you used to create views in your favourite template language.</p>
 
 <h3 id="freemarker">FreeMarker</h3>
 
-<p>From 2.2+ the recommended way to use Freemarker with Sitemesh is through the <code class="language-plaintext highlighter-rouge">org.apache.struts2.sitemesh.FreemarkerDecoratorServlet</code> servlet, which can be configured like this in <code class="language-plaintext highlighter-rouge">web.xml</code>:</p>
+<p>From 2.2+ the recommended way to use Freemarker with Sitemesh is through the <code class="language-plaintext highlighter-rouge">org.apache.struts2.sitemesh.FreemarkerDecoratorServlet</code> 
+servlet, which can be configured like this in <code class="language-plaintext highlighter-rouge">web.xml</code>:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
 <span class="nt">&lt;servlet&gt;</span>
@@ -207,7 +222,8 @@ framework to aid in creating large sites consisting of many pages for which a co
   <p>NOTE: Please include the <a href="../velocity/">Struts Velocity plugin</a> in your pom.xml before using this functionality</p>
 </blockquote>
 
-<p>From 2.2+ the recommended way to use Velocity with Sitemesh is through the <code class="language-plaintext highlighter-rouge">org.apache.struts2.sitemesh.VelocityDecoratorServlet</code> servlet, which can be configured like this in <code class="language-plaintext highlighter-rouge">web.xml</code>:</p>
+<p>From 2.2+ the recommended way to use Velocity with Sitemesh is through the <code class="language-plaintext highlighter-rouge">org.apache.struts2.sitemesh.VelocityDecoratorServlet</code> 
+servlet, which can be configured like this in <code class="language-plaintext highlighter-rouge">web.xml</code>:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
 <span class="nt">&lt;servlet&gt;</span>
@@ -296,8 +312,7 @@ framework to aid in creating large sites consisting of many pages for which a co
 
 <p>Here is an example of how to configure the filter chains in <code class="language-plaintext highlighter-rouge">web.xml</code>:</p>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="nt">&lt;filter&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;filter&gt;</span>
     <span class="nt">&lt;filter-name&gt;</span>struts-prepare<span class="nt">&lt;/filter-name&gt;</span>
     <span class="nt">&lt;filter-class&gt;</span>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter<span class="nt">&lt;/filter-class&gt;</span>
 <span class="nt">&lt;/filter&gt;</span>
@@ -366,8 +381,7 @@ framework to aid in creating large sites consisting of many pages for which a co
 
 <p>Struts 2.1 web.xml filter chain example:</p>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="nt">&lt;filter&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;filter&gt;</span>
     <span class="nt">&lt;filter-name&gt;</span>struts-prepare<span class="nt">&lt;/filter-name&gt;</span>
     <span class="nt">&lt;filter-class&gt;</span>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter<span class="nt">&lt;/filter-class&gt;</span>
 <span class="nt">&lt;/filter&gt;</span>
@@ -399,12 +413,10 @@ framework to aid in creating large sites consisting of many pages for which a co
 
 </code></pre></div></div>
 
-<p>You do not need the struts2-sitmesh-plugin if you are using JSP for your decorators.</p>
+<p>You do not need the struts2-sitmesh-plugin if you are using JSP for your decorators.
+Here are the only changes needed to web.xml</p>
 
-<p>Here are the only only changes needed to web.xml</p>
-
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
-<span class="nt">&lt;filter&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;filter&gt;</span>
     <span class="nt">&lt;filter-name&gt;</span>struts2-prepare<span class="nt">&lt;/filter-name&gt;</span>
     <span class="nt">&lt;filter-class&gt;</span>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter<span class="nt">&lt;/filter-class&gt;</span>
 <span class="nt">&lt;/filter&gt;</span>
diff --git a/content/plugins/spring/index.html b/content/plugins/spring/index.html
index f9fccad96..34af98b8e 100644
--- a/content/plugins/spring/index.html
+++ b/content/plugins/spring/index.html
@@ -129,46 +129,56 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/spring/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
     <h1 class="no_toc" id="spring-plugin">Spring Plugin</h1>
 
 <ul id="markdown-toc">
   <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
   <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#autowiring" id="markdown-toc-autowiring">Autowiring</a></li>
+  <li><a href="#initializing-actions-from-spring" id="markdown-toc-initializing-actions-from-spring">Initializing Actions from Spring</a></li>
+  <li><a href="#class-reloading" id="markdown-toc-class-reloading">Class Reloading</a></li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
 </ul>
 
 <h2 id="description">Description</h2>
 
-<p><a href="http://www.springframework.org">Spring</a> is a lightweight container, providing centralized, automated configuration and wiring of your application objects, using a technique called “Dependency Injection”.</p>
+<p><a href="http://www.springframework.org">Spring</a> is a lightweight container, providing centralized, automated configuration 
+and wiring of your application objects, using a technique called “Dependency Injection”.</p>
 
-<p>The Spring Plugin works by overriding the Struts <a href="/core-developers/object-factory">ObjectFactory</a> to enhance the creation of core framework objects. When an object is to be created, it uses the <code class="language-plaintext highlighter-rouge">class</code> attribute in the Struts configuration to correspond to the <code class="language-plaintext highlighter-rouge">id</code> attribute in the Spring configuration. If not found, the class will try to be created as usual, then [...]
+<p>The Spring Plugin works by overriding the Struts <a href="/core-developers/object-factory">ObjectFactory</a> to enhance 
+the creation of core framework objects. When an object is to be created, it uses the <code class="language-plaintext highlighter-rouge">class</code> attribute in 
+the Struts configuration to correspond to the <code class="language-plaintext highlighter-rouge">id</code> attribute in the Spring configuration. If not found, the class will 
+try to be created as usual, then be autowired by Spring. In the case of Actions, Spring 2’s 
+<a href="http://www.springframework.org/docs/reference/beans.html#beans-factory-scopes">bean scope feature</a> can be used to scope 
+an Action instance to the session, application, or a custom scope, providing advanced customization above 
+the default per-request scoping.</p>
 
 <blockquote>
-  <p>Remember:</p>
-
-  <p><strong>registering Actions with Spring is not required</strong>. The Spring alternative is there if you need it, but the framework will automatically create Actions objects from the action mappings. But, if you want to use Spring to inject your Actions, the option is there.</p>
+  <p>Remember:
+<strong>registering Actions with Spring is not required</strong>. The Spring alternative is there if you need it, but the framework 
+will automatically create Actions objects from the action mappings. But, if you want to use Spring to inject your Actions, 
+the option is there.</p>
 </blockquote>
 
-<p><strong>Features</strong></p>
+<h2 id="features">Features</h2>
 
 <ul>
-  <li>
-    <p>Allow Actions, Interceptors, and Results to be created by Spring</p>
-  </li>
-  <li>
-    <p>Struts-created objects can be autowired by Spring after creation</p>
-  </li>
-  <li>
-    <p>Provides two interceptors that autowire actions, if not using the Spring ObjectFactory</p>
-  </li>
+  <li>Allow Actions, Interceptors, and Results to be created by Spring</li>
+  <li>Struts-created objects can be autowired by Spring after creation</li>
+  <li>Provides two interceptors that autowire actions, if not using the Spring ObjectFactory</li>
 </ul>
 
 <h2 id="usage">Usage</h2>
 
 <p>To enable Spring integration, simply include struts2-spring-plugin-x-x-x.jar in your application.</p>
 
-<p>If you are using more than one object factory, (for example, by including both the Spring and Plexus plugins in your application,) you will need to set the struts.objectFactory property in <a href="/core-developers/default-properties">default.properties</a>  or in one of several XML files via <a href="/core-developers/constant-configuration">Constant Configuration</a>:</p>
+<p>If you are using more than one object factory, (for example, by including both the Spring and Plexus plugins in your application) 
+you will need to set the struts.objectFactory property in <a href="/core-developers/default-properties">default.properties</a>
+or in one of several XML files via <a href="/core-developers/constant-configuration">Constant Configuration</a>:</p>
 
 <p><strong>struts.properties</strong></p>
 
@@ -184,9 +194,10 @@
 
 </code></pre></div></div>
 
-<p><strong>Autowiring</strong></p>
+<h2 id="autowiring">Autowiring</h2>
 
-<p>The framework enables “autowiring” by default. (Autowiring means to look for objects defined in Spring with the same name as your object property). To change the wiring mode, modify the <code class="language-plaintext highlighter-rouge">spring.autowire</code> property.</p>
+<p>The framework enables “autowiring” by default. (Autowiring means to look for objects defined in Spring with the same 
+name as your object property). To change the wiring mode, modify the <code class="language-plaintext highlighter-rouge">spring.autowire</code> property.</p>
 
 <p><strong>Wiring Mode</strong></p>
 
@@ -259,7 +270,9 @@
 
 <p>More applicationContext configuration files needed?</p>
 
-<p>Since the Spring integration uses a standard Listener, it can be configured to support configuration files other than applicationContext.xml. Adding the following to your web.xml will cause Spring’s ApplicationContext to be inititalized from all files matching the given pattern:</p>
+<p>Since the Spring integration uses a standard Listener, it can be configured to support configuration files other than 
+applicationContext.xml. Adding the following to your web.xml will cause Spring’s ApplicationContext to be initialized 
+from all files matching the given pattern:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">&lt;!-- Context Configuration locations for Spring XML files --&gt;</span>
  <span class="nt">&lt;context-param&gt;</span>
@@ -270,13 +283,23 @@
 
 <p>See the Spring documentation for a full description of this parameter.</p>
 
-<p><strong>Initializing Actions from Spring</strong></p>
+<h2 id="initializing-actions-from-spring">Initializing Actions from Spring</h2>
 
-<p>Normally, in <code class="language-plaintext highlighter-rouge">struts.xml</code> you specify the class for each Action. When using the default SpringObjectFactory, the framework will ask Spring to create the Action and wire up dependencies as specified by the default auto-wire behavior.</p>
+<p>Normally, in <code class="language-plaintext highlighter-rouge">struts.xml</code> you specify the class for each Action. When using the default SpringObjectFactory, the framework 
+will ask Spring to create the Action and wire up dependencies as specified by the default auto-wire behavior.</p>
 
-<p>We <strong>strongly</strong> recommend that you find declarative ways of letting Spring know what to provide for your actions. This includes making your beans able to be autowired by either naming your dependent properties on your action the same as the bean defined in Spring which should be provided (to allow for name-based autowiring), or using autowire-by-type and only having one of the required type registered with Spring. It also can include using JDK5 annotations to declare tran [...]
+<p>We <strong>strongly</strong> recommend that you find declarative ways of letting Spring know what to provide for your actions. 
+This includes making your beans able to be autowired by either naming your dependent properties on your action the same 
+as the bean defined in Spring which should be provided (to allow for name-based autowiring), or using autowire-by-type 
+and only having one of the required type registered with Spring. It also can include using JDK5 annotations to declare 
+ransactional and security requirements rather than having to explicitly set up proxies in your Spring configuration. 
+If you can find ways to let Spring know what it needs to do for your action without needing any explicit configuration 
+in the Spring applicationContext.xml, then you won’t have to maintain this configuration in both places.</p>
 
-<p>However, sometimes you might want the bean to be completely managed by Spring. This is useful, for example, if you wish to apply more complex AOP or Spring-enabled technologies, such as Acegi, to your beans. To do this, all you have to do is configure the bean in your Spring <code class="language-plaintext highlighter-rouge">applicationContext.xml</code> and then <em>change</em>  the class attribute from your Action in the <code class="language-plaintext highlighter-rouge">struts.xml< [...]
+<p>However, sometimes you might want the bean to be completely managed by Spring. This is useful, for example, if you wish 
+to apply more complex AOP or Spring-enabled technologies, such as Acegi, to your beans. To do this, all you have to do 
+is configure the bean in your Spring <code class="language-plaintext highlighter-rouge">applicationContext.xml</code> and then <em>change</em> the class attribute from your Action 
+in the <code class="language-plaintext highlighter-rouge">struts.xml</code> to use the bean name defined in Spring instead of the class name.</p>
 
 <p>Your <code class="language-plaintext highlighter-rouge">struts.xml</code> file would then have the Action class attributes changed.</p>
 
@@ -303,7 +326,8 @@
 
 </code></pre></div></div>
 
-<p>Where you have a Spring bean defined in your <code class="language-plaintext highlighter-rouge">applicationContext.xml</code> named “bar”. Note that the <code class="language-plaintext highlighter-rouge">com.acme.Foo</code> Action did not need to be changed, because it can be autowired.</p>
+<p>Where you have a Spring bean defined in your <code class="language-plaintext highlighter-rouge">applicationContext.xml</code> named “bar”. Note that the <code class="language-plaintext highlighter-rouge">com.acme.Foo</code> 
+Action did not need to be changed, because it can be autowired.</p>
 
 <p>A typical spring configuration for bar could look as following.</p>
 
@@ -315,32 +339,26 @@
     <span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"bar"</span> <span class="na">class=</span><span class="s">"com.my.BarClass"</span> <span class="na">singleton=</span><span class="s">"false"</span><span class="nt">/&gt;</span>
     ...
 <span class="nt">&lt;/beans&gt;</span>
-
 </code></pre></div></div>
 
 <p>To use session-scoped components with Spring and Struts, see the <a href="spring-session-components-workarounds">Spring Session Components Workarounds</a> analysis.</p>
 
-<p><strong>Class Reloading</strong></p>
+<h2 id="class-reloading">Class Reloading</h2>
 
-<p>The Spring plugin can be configured to automatically reload classes that change in the file system. This feature will enable code changes to be “hot deployed” without having to restart the web container. To enable this feature follow these steps:</p>
+<p>The Spring plugin can be configured to automatically reload classes that change in the file system. This feature will 
+enable code changes to be “hot deployed” without having to restart the web container. To enable this feature follow 
+these steps:</p>
 
 <ol>
-  <li>
-    <p>Set “struts.devMode” to “true”</p>
-  </li>
-  <li>
-    <p>Set “struts.class.reloading.watchList” to a comma separated list of directories, or jar files (absolute or relative paths)</p>
-  </li>
-  <li>
-    <p>Add this to web.xml:</p>
-  </li>
+  <li>Set “struts.devMode” to “true”</li>
+  <li>Set “struts.class.reloading.watchList” to a comma separated list of directories, or jar files (absolute or relative paths)</li>
+  <li>Add this to web.xml:</li>
 </ol>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>   <span class="nt">&lt;context-param&gt;</span>
-       <span class="nt">&lt;param-name&gt;</span>contextClass<span class="nt">&lt;/param-name&gt;</span>
-       <span class="nt">&lt;param-value&gt;</span>org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext<span class="nt">&lt;/param-value&gt;</span>
-   <span class="nt">&lt;/context-param&gt;</span> 
-
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;context-param&gt;</span>
+   <span class="nt">&lt;param-name&gt;</span>contextClass<span class="nt">&lt;/param-name&gt;</span>
+   <span class="nt">&lt;param-value&gt;</span>org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
 </code></pre></div></div>
 
 <ol start="4">
@@ -355,7 +373,10 @@
 
 </code></pre></div></div>
 
-<p>Letting the reloading class loader handle all the classes can lead to ClassCastException(s) because instances of the same classes loaded by different class loaders can not be assigned to each other. To prevent this problem we suggest that <code class="language-plaintext highlighter-rouge">struts.class.reloading.acceptClasses</code> is used to limit the classes loaded by the reloading class loader, so only actions are handled by it. This constant supports a comma separated list of regu [...]
+<p>Letting the reloading class loader handle all the classes can lead to ClassCastException(s) because instances of the same 
+classes loaded by different class loaders can not be assigned to each other. To prevent this problem we suggest 
+that <code class="language-plaintext highlighter-rouge">struts.class.reloading.acceptClasses</code> is used to limit the classes loaded by the reloading class loader, 
+so only actions are handled by it. This constant supports a comma separated list of regular expressions:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.class.reloading.acceptClasses"</span> <span class="na">value=</span><span class="s">"com.myproject.example.actions..*"</span> <span class="nt">/&gt;</span>
 
@@ -365,7 +386,7 @@
   <p>This feature is experimental, and <strong>should never</strong> be used in production systems.</p>
 </blockquote>
 
-<p><strong>Settings</strong></p>
+<h2 id="settings">Settings</h2>
 
 <p>The following settings can be customized. See the <a href="/core-developers/configuration-files">developer guide</a>.</p>
 
@@ -424,7 +445,7 @@
   </tbody>
 </table>
 
-<p><strong>Installation</strong></p>
+<h2 id="installation">Installation</h2>
 
 <p>This plugin can be installed by copying the plugin jar into your application’s <code class="language-plaintext highlighter-rouge">/WEB-INF/lib</code> directory. No other files need to be copied or created.</p>
 
diff --git a/content/plugins/struts-1/index.html b/content/plugins/struts-1/index.html
index 601d854aa..f41cb3d2c 100644
--- a/content/plugins/struts-1/index.html
+++ b/content/plugins/struts-1/index.html
@@ -129,10 +129,20 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/struts-1/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="struts-1-plugin">Struts 1 Plugin</h1>
+    <h1 class="no_toc" id="struts-1-plugin">Struts 1 Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#example" id="markdown-toc-example">Example</a></li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+</ul>
 
+<h2 id="description">Description</h2>
 <p>The Struts 1 plugin allows you to use existing Struts 1 Actions and ActionForms in Struts 2 applications</p>
 
 <p>This plugin provides a generic Struts 2 Action class to wrap an existing Struts 1 Action, <code class="language-plaintext highlighter-rouge">org.apache.struts2.s1.Struts1Action</code>.  The wrapper class provides the expected calls to the legacy Struts 1 Action and ActionForm, converting incoming and outgoing objects into the expected forms.  It works by using the <a href="/core-developers/scoped-model-driven-interceptor">scoped model driven</a>  technique that uses a single Object as [...]
diff --git a/content/plugins/testng/index.html b/content/plugins/testng/index.html
index f642c67ec..cbb186de0 100644
--- a/content/plugins/testng/index.html
+++ b/content/plugins/testng/index.html
@@ -129,13 +129,22 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/testng/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="testng-plugin">TestNG Plugin</h1>
+    <h1 class="no_toc" id="testng-plugin">TestNG Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+</ul>
 
-<p>The TestNG plugin provides integration with the popular <a href="http://testng.org">TestNG</a> unit testing framework.</p>
+<h2 id="description">Description</h2>
 
-<p>This plugin provides a base <code class="language-plaintext highlighter-rouge">StrutsTestCase</code> class that can subclassed for tests that work on Struts 2 components.</p>
+<p>The TestNG plugin provides integration with the popular <a href="http://testng.org">TestNG</a> unit testing framework.
+This plugin provides a base <code class="language-plaintext highlighter-rouge">StrutsTestCase</code> class that can subclassed for tests that work on Struts 2 components.</p>
 
 <blockquote>
   <p>This plugin is only available with Struts 2.1.1 or later</p>
diff --git a/content/plugins/tiles-3/index.html b/content/plugins/tiles-3/index.html
index baf5a03ac..4fc94d5d0 100644
--- a/content/plugins/tiles-3/index.html
+++ b/content/plugins/tiles-3/index.html
@@ -129,14 +129,25 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/tiles-3/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="tiles-3-plugin">Tiles 3 Plugin</h1>
+    <h1 class="no_toc" id="tiles-3-plugin">Tiles 3 Plugin</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#features" id="markdown-toc-features">Features</a></li>
+  <li><a href="#usage" id="markdown-toc-usage">Usage</a></li>
+  <li><a href="#example" id="markdown-toc-example">Example</a></li>
+  <li><a href="#settings" id="markdown-toc-settings">Settings</a></li>
+  <li><a href="#installation" id="markdown-toc-installation">Installation</a></li>
+</ul>
 
 <blockquote>
   <p>This plugin was dropped in Struts 2.5, instead please use <a href="../tiles">Tiles Plugin</a> which was extended and upgraded to Tiles 3.</p>
+</blockquote>
 
-  <p>Tiles is a templating framework designed to easily allow the creation of web application pages with a consistent look and feel. It can be used for both page decorating and componentization. This is the first release of the plugin!</p>
+<blockquote>
+  <p>Tiles is a templating framework designed to easily allow the creation of web application pages with a consistent look 
+and feel. It can be used for both page decorating and componentization. This is the first release of the plugin!</p>
 </blockquote>
 
 <p>The Tiles 3 plugin allows actions to return Tiles 3 pages.</p>
diff --git a/content/plugins/tiles/index.html b/content/plugins/tiles/index.html
index f65f45b89..e88cfd918 100644
--- a/content/plugins/tiles/index.html
+++ b/content/plugins/tiles/index.html
@@ -129,7 +129,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/tiles/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="../" title="back to Plugins"><< back to Plugins</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
     <h1 class="no_toc" id="tiles-plugin">Tiles Plugin</h1>
 
diff --git a/content/tag-developers/css-xhtml-theme.html b/content/tag-developers/css-xhtml-theme.html
index f18ec9208..c98dca938 100644
--- a/content/tag-developers/css-xhtml-theme.html
+++ b/content/tag-developers/css-xhtml-theme.html
@@ -327,7 +327,7 @@ to provide the layout. The contents of <strong>head.ftl</strong> are:</p>
  * under the License.
  */
 --&gt;
-&lt;link &lt;#include "/${parameters.templateDir}/simple/nonce.ftl" /&gt; rel="stylesheet" href="&lt;@s.url value='${parameters.staticContentPath}/css_xhtml/styles.css' includeParams='none' encode='false' /&gt;" type="text/css" /&gt;
+&lt;@s.link rel="stylesheet" href="${base}${parameters.staticContentPath}/css_xhtml/styles.css" type="text/css" /&gt;
 &lt;#include "/${parameters.templateDir}/simple/head.ftl" /&gt;</code></pre></figure>
 
 <p>The head includes a style sheet. The contents of <strong>styles.css</strong> are:</p>
diff --git a/content/tag-developers/simple-theme.html b/content/tag-developers/simple-theme.html
index 0209c1e4a..f04b608ac 100644
--- a/content/tag-developers/simple-theme.html
+++ b/content/tag-developers/simple-theme.html
@@ -181,7 +181,7 @@ Ajax/Dojo support so that tags can import Dojo widgets easily.</p>
  * under the License.
  */
 --&gt;
-&lt;script src="${base}${parameters.staticContentPath}/utils.js" type="text/javascript" &lt;#include "/${parameters.templateDir}/simple/nonce.ftl" /&gt; &gt;&lt;/script&gt;</code></pre></figure>
+&lt;@s.script src="${base}${parameters.staticContentPath}/utils.js" type="text/javascript" /&gt;</code></pre></figure>
 
 
   </section>
diff --git a/content/tag-developers/xhtml-theme.html b/content/tag-developers/xhtml-theme.html
index ed3518b28..c78bacb21 100644
--- a/content/tag-developers/xhtml-theme.html
+++ b/content/tag-developers/xhtml-theme.html
@@ -392,7 +392,7 @@ render the form elements.</p>
  * under the License.
  */
 --&gt;
-&lt;link rel="stylesheet" href="&lt;@s.url value='${parameters.staticContentPath}/xhtml/styles.css' includeParams='none' encode='false'/&gt;" type="text/css" &lt;#include "/${parameters.templateDir}/simple/nonce.ftl" /&gt; /&gt;
+&lt;@s.link rel="stylesheet" href="${base}${parameters.staticContentPath}/xhtml/styles.css" type="text/css" /&gt;
 &lt;#include "/${parameters.templateDir}/simple/head.ftl" /&gt;</code></pre></figure>
 
 <p>The head template imports a style sheet. The contents of <strong>styles.css</strong> are:</p>
@@ -506,14 +506,14 @@ wrapping table, the opening and closing templates also, if the <code class="lang
 &lt;#include "/${parameters.templateDir}/simple/form-close.ftl" /&gt;
 &lt;#include "/${parameters.templateDir}/${parameters.expandTheme}/form-close-validate.ftl" /&gt;
 &lt;#if parameters.focusElement??&gt;
-&lt;script type="text/javascript" &lt;#include "/${parameters.templateDir}/simple/nonce.ftl" /&gt; &gt;
+&lt;@s.script type="text/javascript"&gt;
     StrutsUtils.addOnLoad(function() {
         var element = document.getElementById("${parameters.focusElement?js_string}");
         if(element) {
             element.focus();
         }
     });
-&lt;/script&gt;
+&lt;/@s.script&gt;
 &lt;/#if&gt;</code></pre></figure>
 
 <h3 id="xhtml-form-template">xhtml form template</h3>
@@ -582,14 +582,14 @@ to <code class="language-plaintext highlighter-rouge">true</code>, enable <a hre
 &lt;#include "/${parameters.templateDir}/simple/form-close.ftl" /&gt;
 &lt;#include "/${parameters.templateDir}/${parameters.expandTheme}/form-close-validate.ftl" /&gt;
 &lt;#if parameters.focusElement??&gt;
-&lt;script type="text/javascript" &lt;#include "/${parameters.templateDir}/simple/nonce.ftl" /&gt; &gt;
+&lt;@s.script type="text/javascript"&gt;
     StrutsUtils.addOnLoad(function() {
         var element = document.getElementById("${parameters.focusElement?js_string}");
         if(element) {
             element.focus();
         }
     });
-&lt;/script&gt;
+&lt;/@s.script&gt;
 &lt;/#if&gt;</code></pre></figure>