Merge pull request #141 from apache/fixes-tags

Cleans up tag syntax page
diff --git a/source/_layouts/tag-developers.html b/source/_layouts/tag-developers.html
new file mode 100644
index 0000000..be613aa
--- /dev/null
+++ b/source/_layouts/tag-developers.html
@@ -0,0 +1,41 @@
+<!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>{{ page.title }}</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>
+
+{% include header.html %}
+
+<article class="container">
+  <section class="col-md-12">
+    <a class="edit-on-gh" href="{{ site.repository_url }}/edit/master/source/{{ page.path }}" title="Edit this page on GitHub">Edit on GitHub</a>
+    {% if page.parent %}
+    <a href="{{ page.parent.url }}" title="back to {{ page.parent.title }}"><< back to {{ page.parent.title }}</a>
+    {% else %}
+    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag Developers Guide</a>
+    {% endif %}
+    {{ content }}
+  </section>
+</article>
+
+{% include footer.html %}
+
+</body>
+</html>
diff --git a/source/tag-developers/a-tag.md b/source/tag-developers/a-tag.md
index e9c8202..93b4522 100644
--- a/source/tag-developers/a-tag.md
+++ b/source/tag-developers/a-tag.md
@@ -1,997 +1,33 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: a tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # a
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
 ## Description
 
 A tag that creates a HTML `<a>.` This tag supports the same attributes as the `url` tag, including nested parameters 
 using the `param` tag.
- 
-> While this tag can be used with the [simple theme](simple-theme.html), [xhtml theme](xhtml-theme.html), and others, 
-> it is really designed to work best with the [ajax theme](ajax-theme.html). We recommend reading the 
-> _ajax a template_  documentation for more details.
 
-## Parameters
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/a-description.html %} 
 
-{% comment %}start snippet id=tagattributes|struts2-tags/a.html {% endcomment %}
-<p>		<table width="100%">
+## Attributes
 
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">action</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The action to generate the URL for, if not using value</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">anchor</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The anchor for this URL</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">encode</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to encode parameters</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escapeAmp</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Specifies whether to escape ampersand (&amp;) to (&amp;amp;) or not</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">forceAddSchemeHostAndPort</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Specifies whether to force the addition of scheme, host and port or not</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">href</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The URL.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">includeContext</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether actual context should be included in URL</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">includeParams</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">none</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The includeParams attribute may have the value 'none', 'get' or 'all'</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">method</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The method of action to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">namespace</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The namespace to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">openTemplate</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">portletMode</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The resulting portlet mode</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">portletUrlType</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Specifies if this should be a portlet render or action URL. Default is "render". To create an action URL, use "action".</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">scheme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set scheme attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The target value to use, if not using action</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">windowState</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The resulting portlet window state</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|struts2-tags/a.html {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/a-attributes.html %}
 
 ## Usage
 
-To get started, use the [head](head-tag.htlm) tag and the [ajax theme](ajax-theme.html). See _ajax head template_  
-for more information. Then look at the usage details for the _ajax a template_ .
-
 If you want to use additional parameters in your `s:a` the best practice is to use a `s:url` to create your url and then 
 leverage this url into your `s:a` tag. This is done by creating a `s:url` and specifying an `var` attribute. Like `testUrlId` 
 in this example. Then in the `s:a` tag reference this id in the href attribute via `%{testUrlId}`
 
-```html
+```jsp
 <s:url var="testUrlId" namespace="/subscriber" action="customField" method="delete">
     <s:param name="customFieldDefinition.id" value="${id}"/>
 </s:url>
diff --git a/source/tag-developers/access-to-valuestack-from-jsps.md b/source/tag-developers/access-to-valuestack-from-jsps.md
index 47d98aa..4878eb9 100644
--- a/source/tag-developers/access-to-valuestack-from-jsps.md
+++ b/source/tag-developers/access-to-valuestack-from-jsps.md
@@ -1,6 +1,6 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: Access to ValueStack from JSPs
 ---
 
 # Access to ValueStack from JSPs
diff --git a/source/tag-developers/action-tag.md b/source/tag-developers/action-tag.md
index 8c9d777..05c6b10 100644
--- a/source/tag-developers/action-tag.md
+++ b/source/tag-developers/action-tag.md
@@ -1,22 +1,20 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: action tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # action
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
 ## Description
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ActionComponent {% endcomment %}
-<p> <p>This tag enables developers to call actions directly from a JSP page by specifying the action name and an optional
- namespace.  The body content of the tag is used to render the results from the Action.  Any result processor defined
- for this action in struts.xml will be ignored, <i>unless</i> the executeResult parameter is specified.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ActionComponent {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/action-description.html %}
 
-Parameters can be passed to the action using nested [param](param-tag.html) tags.
+Parameters can be passed to the action using nested [param](param-tag) tags.
 
 ## Placement in context
 
@@ -31,165 +29,20 @@
 ```
 
 Will print:
-
+```
 Is "myAction" null inside the tag? true
 
 Is "myAction" null outside the tag? false
+```
 
-## Parameters
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/action-description.html %}
 
-{% comment %}start snippet id=tagattributes|struts2-tags/action.html {% endcomment %}
-<p>		<table width="100%">
+## Attributes
 
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">executeResult</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether the result of this action (probably a view) should be executed/rendered</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">flush</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether the writer should be flush upon end of action component tag, default to true</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ignoreContextParams</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether the request parameters are to be included when the action is invoked</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name of the action to be executed (without the extension suffix eg. .action)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">namespace</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">namespace from where tag is used</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Namespace for action to call</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">rethrowException</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether an exception should be rethrown, if the target action throws an exception</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name used to reference the value pushed into the Value Stack</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|struts2-tags/action.html {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/action-attributes.html %}
 
 ## Examples
 
-{% comment %}start snippet id=javacode|javadoc=true|lang=java|url=org.apache.struts2.components.ActionComponent {% endcomment %}
-
 ```java
  public class ActionTagAction extends ActionSupport {
 
@@ -205,13 +58,8 @@
 
 ```
 
-{% comment %}end snippet id=javacode|javadoc=true|lang=java|url=org.apache.struts2.components.ActionComponent {% endcomment %}
-
-
-{% comment %}start snippet id=strutsxml|javadoc=true|lang=xml|url=org.apache.struts2.components.ActionComponent {% endcomment %}
-
 ```xml
-   <xwork>
+   <struts>
       ....
      <action name="actionTagAction1" class="tmjee.testing.ActionTagAction">
          <result name="done">success.jsp</result>
@@ -220,29 +68,25 @@
          <result name="done">success.jsp</result>
      </action>
       ....
-   </xwork>
-
+   </struts>
 ```
 
-{% comment %}end snippet id=strutsxml|javadoc=true|lang=xml|url=org.apache.struts2.components.ActionComponent {% endcomment %}
+The following action tag will execute result and include it in this page
 
-
-{% comment %}start snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.ActionComponent {% endcomment %}
-
-```xml
-  <span>The following action tag will execute result and include it in this page</span>
-  <br>
+```jsp
   <s:action name="actionTagAction" executeResult="true" />
-  <br>
-  <span>The following action tag will do the same as above, but invokes method specialMethod in action</span>
-  <br>
+```
+
+The following action tag will do the same as above, but invokes method specialMethod in action</span>
+
+```jsp
   <s:action name="actionTagAction!specialMethod" executeResult="true" />
-  <br>
-  <span>The following action tag will not execute result, but put a String in request scope
-       under an id "stringByAction" which will be retrieved using property tag</span>
+```
+  
+The following action tag will not execute result, but put a String in request scope under an id `stringByAction` which 
+will be retrieved using property tag</span>
+
+```jsp
   <s:action name="actionTagAction!default" executeResult="false" />
   <s:property value="#attr.stringByAction" />
-
 ```
-
-{% comment %}end snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.ActionComponent {% endcomment %}
diff --git a/source/tag-developers/actionerror-tag.md b/source/tag-developers/actionerror-tag.md
index 6b859f7..f204e90 100644
--- a/source/tag-developers/actionerror-tag.md
+++ b/source/tag-developers/actionerror-tag.md
@@ -1,775 +1,31 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: actionerror tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # actionerror
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
+
 ## Description
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ActionError {% endcomment %}
-<p>
- Render action errors if they exists the specific layout of the rendering depends on
- the theme itself. Empty (null or blank string) errors will not be printed. The action error
- strings will be html escaped by default.
+Render action errors if they exists the specific layout of the rendering depends on the theme itself. Empty (null or 
+blank string) errors will not be printed. The action error strings will be html escaped by default.
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ActionError {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/actionerror-description.html %}
 
-## Parameters
+## Attributes
 
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/actionerror.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escape</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top"> Whether to escape HTML</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/actionerror.html {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/actionerror-attributes.html %}
 
 ## Examples
 
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.ActionError {% endcomment %}
-
-```xml
-
+```jsp
     <s:actionerror />
     <s:form .... >
        ....
     </s:form>
-
-
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.ActionError {% endcomment %}
diff --git a/source/tag-developers/actionmessage-tag.md b/source/tag-developers/actionmessage-tag.md
index a54153a..86551ca 100644
--- a/source/tag-developers/actionmessage-tag.md
+++ b/source/tag-developers/actionmessage-tag.md
@@ -1,779 +1,31 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: actionmessage tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # actionmessage
 
-__Description__
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
+## Description 
 
+Render action messages if they exists, specific rendering layout depends on the theme itself. Empty (null or blank 
+string) messages will not be printed. The action message strings will be html escaped by default.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ActionMessage {% endcomment %}
-<p>
- Render action messages if they exists, specific rendering layout depends on the
- theme itself. Empty (null or blank string) messages will not be printed. The action message
- strings will be html escaped by default.
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/actionmessage-description.html %}
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ActionMessage {% endcomment %}
+## Attributes
 
-__Parameters__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/actionmessage-attributes.html %}
 
+## Examples
 
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/actionmessage.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escape</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to escape HTML</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/actionmessage.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.ActionMessage {% endcomment %}
-
-```xml
+```jsp
     <s:actionmessage />
     <s:form .... >
        ....
     </s:form>
-
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.ActionMessage {% endcomment %}
diff --git a/source/tag-developers/ajax-a-template.md b/source/tag-developers/ajax-a-template.md
index 10c41a2..3e8ac2d 100644
--- a/source/tag-developers/ajax-a-template.md
+++ b/source/tag-developers/ajax-a-template.md
@@ -1,10 +1,12 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: Ajax a template
 ---
 
 # ajax a template
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 The ajax theme is experimental. Feedback is appreciated.
 
 The ajax a template is used to make asynchronous calls to the server when the user clicks on the a href link. It is 
diff --git a/source/tag-developers/ajax-and-javascript-recipes.md b/source/tag-developers/ajax-and-javascript-recipes.md
index 0e6c5a5..bc0ebe1 100644
--- a/source/tag-developers/ajax-and-javascript-recipes.md
+++ b/source/tag-developers/ajax-and-javascript-recipes.md
@@ -1,6 +1,6 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: Ajax and JavaScript Recipes
 ---
 
 # Ajax and JavaScript Recipes
@@ -9,7 +9,7 @@
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-**Dojo plugin is deprecated**
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
 
 ## Common
 
diff --git a/source/tag-developers/ajax-div-template.md b/source/tag-developers/ajax-div-template.md
index 6094fa2..2912b96 100644
--- a/source/tag-developers/ajax-div-template.md
+++ b/source/tag-developers/ajax-div-template.md
@@ -1,11 +1,11 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # ajax div template
 
-> The Ajax theme is experimental. Feedback is appreciated.
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
 
 The ajax [div](dojo-div-tag.html) template provides a much more interesting div rendering option that the other themes 
 do. Rather than simply rendering a `<div>` tag, this template relies on advanced AJAX features provided 
diff --git a/source/tag-developers/ajax-event-system.md b/source/tag-developers/ajax-event-system.md
index 72d3978..58ce965 100644
--- a/source/tag-developers/ajax-event-system.md
+++ b/source/tag-developers/ajax-event-system.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # ajax event system
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 As you may have seen with the [ajax div template](ajax-div-template.html) and [ajax a template](ajax-a-template.html), 
 the framework and Dojo provide a nice way to subscribe and notify of topics from within the browser. A benefit of using 
 Dojo as the basis of many of these components is being able to loosely couple UI components. There are two 
diff --git a/source/tag-developers/ajax-head-template.md b/source/tag-developers/ajax-head-template.md
index be646a5..d51a6ba 100644
--- a/source/tag-developers/ajax-head-template.md
+++ b/source/tag-developers/ajax-head-template.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # ajax head template
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 The ajax [head](dojo-head-tag.html) template builds upon the [xhtml head template](head-tag.html) by providing additional 
 JavaScript includes for the [Dojo Toolkit](http://dojotoolkit.org), which is used by the [ajax a template](ajax-a-template.html),
 [ajax div template](ajax-div-template.html), and the [ajax tabbedPanel template](). It is required to use this tag, 
diff --git a/source/tag-developers/ajax-tags.md b/source/tag-developers/ajax-tags.md
index 675d2bb..3a3f6ca 100644
--- a/source/tag-developers/ajax-tags.md
+++ b/source/tag-developers/ajax-tags.md
@@ -1,12 +1,11 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # Ajax Tags
 
-**Dojo plugin is deprecated and was removed since Struts 2.5**
-
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
 
 > **Please** check that documentation and the Dojo tag examples in the showcase app of the appropriate Struts 2 version 
 > before asking questions on the struts-user mailing list!
diff --git a/source/tag-developers/ajax-theme.md b/source/tag-developers/ajax-theme.md
index da686bf..657de23 100644
--- a/source/tag-developers/ajax-theme.md
+++ b/source/tag-developers/ajax-theme.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 parent:
   url: themes-and-templates.html
@@ -8,7 +8,7 @@
 
 # ajax theme
 
-> The ajax theme is deprecated!
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
 
 The ajax theme extends the [xhtml theme](xhtml-theme.html) with AJAX features. The theme uses the popular DOJO 
 AJAX/JavaScript toolkit. AJAX features include:
diff --git a/source/tag-developers/alt-syntax.md b/source/tag-developers/alt-syntax.md
index 9e33da0..b3e7370 100644
--- a/source/tag-developers/alt-syntax.md
+++ b/source/tag-developers/alt-syntax.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/append-tag.md b/source/tag-developers/append-tag.md
index adae75a..fb25d1c 100644
--- a/source/tag-developers/append-tag.md
+++ b/source/tag-developers/append-tag.md
@@ -1,94 +1,41 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: append tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # append
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
 ## Description
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.AppendIterator {% endcomment %}
-<p> <p>Component for AppendIteratorTag, which jobs is to append iterators to form an
- appended iterator whereby entries goes from one iterator to another after each
- respective iterator is exhausted of entries.</p>
+Component for AppendIteratorTag, which jobs is to append iterators to form an appended iterator whereby entries goes 
+from one iterator to another after each respective iterator is exhausted of entries.
 
- <p>For example, if there are 3 iterator appended (each iterator has 3 entries),
- the following will be how the appended iterator entries will be arranged:</p>
+For example, if there are 3 iterator appended (each iterator has 3 entries the following will be how the appended 
+iterator entries will be arranged:
 
- <ol>
-      <li>First Entry of the First Iterator</li>
-      <li>Second Entry of the First Iterator</li>
-      <li>Third Entry of the First Iterator</li>
-      <li>First Entry of the Second Iterator</li>
-      <li>Second Entry of the Second Iterator</li>
-      <li>Third Entry of the Second Iterator</li>
-      <li>First Entry of the Third Iterator</li>
-      <li>Second Entry of the Third Iterator</li>
-      <li>Third Entry of the Third ITerator</li>
- </ol>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.AppendIterator {% endcomment %}
+1. First Entry of the First Iterator
+2. Second Entry of the First Iterator
+3. Third Entry of the First Iterator
+4. First Entry of the Second Iterator
+5. Second Entry of the Second Iterator
+6. Third Entry of the Second Iterator
+7. First Entry of the Third Iterator
+8. Second Entry of the Third Iterator
+9. Third Entry of the Third Iterator
 
-## Parameters
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/append-description.html %}
 
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/append.html {% endcomment %}
-<p>		<table width="100%">
+## Attributes
 
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name of which if supplied will have the resultant appended iterator stored under in the stack's context</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/append.html {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/append-description.html %}
 
 ## Example
 
-{% comment %}start snippet id=code|lang=java|javadoc=true|url=org.apache.struts2.components.AppendIterator {% endcomment %}
-
 ```java
  public class AppendIteratorTagAction extends ActionSupport {
 
@@ -124,11 +71,7 @@
 
 ```
 
-{% comment %}end snippet id=code|lang=java|javadoc=true|url=org.apache.struts2.components.AppendIterator {% endcomment %}
-
-{% comment %}start snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.AppendIterator {% endcomment %}
-
-```xml
+```jsp
  <s:append var="myAppendIterator">
       <s:param value="%{myList1}" />
       <s:param value="%{myList2}" />
@@ -137,7 +80,4 @@
  <s:iterator value="%{#myAppendIterator}">
       <s:property />
  </s:iterator>
-
 ```
-
-{% comment %}end snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.AppendIterator {% endcomment %}
diff --git a/source/tag-developers/bean-tag.md b/source/tag-developers/bean-tag.md
index f73ed24..8e19f01 100644
--- a/source/tag-developers/bean-tag.md
+++ b/source/tag-developers/bean-tag.md
@@ -1,106 +1,42 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: bean tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # bean
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
 ## Description
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Bean {% endcomment %}
-<p> <p>Instantiates a class that conforms to the JavaBeans specification. This tag has a body which can contain
- a number of {@link Param} elements to set any mutator methods on that class.</p>
+Instantiates a class that conforms to the JavaBeans specification. This tag has a body which can contain a number 
+of [param](param-tag) elements to set any mutator methods on that class.
 
- <p>If the var attribute is set on the BeanTag, it will place the instantiated bean into the
- stack's Context.</p>
+If the var attribute is set on the BeanTag, it will place the instantiated bean into the stack's Context.
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Bean {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/bean-description.html %}
 
-## Parameters
+## Attributes
 
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/bean.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The class name of the bean to be instantiated (must respect JavaBean specification)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name used to reference the value pushed into the Value Stack</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/bean.html {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/bean-attributes.html %}
 
 ## Examples
 
-{% comment %}start snippet id=examples|javadoc=true|lang=xml|url=org.apache.struts2.components.Bean {% endcomment %}
+### in freemarker form
 
-```xml
- <-- in freemarker form -->
+```
  [@s.bean name="org.apache.struts2.example.counter.SimpleCounter" var="counter"]
    [s:param name="foo" value="BAR"/]
    The value of foo is : [s:property value="foo"/], when inside the bean tag.
  [/s:bean]
+```
 
- <-- in jsp form -->
+### in jsp form
+ 
+```jsp
  <s:bean name="org.apache.struts2.example.counter.SimpleCounter" var="counter">
    <s:param name="foo" value="BAR" />
    The value of foot is : <s:property value="foo"/>, when inside the bean tag <br />
@@ -108,25 +44,24 @@
 
 ```
 
-{% comment %}end snippet id=examples|javadoc=true|lang=xml|url=org.apache.struts2.components.Bean {% endcomment %}
+This example instantiates a bean called SimpleCounter and sets the foo property (`setFoo('BAR')`). The `SimpleCounter` 
+object is then pushed onto the `ValueStack`, which means that we can call its accessor methods (`getFoo()`) with 
+the property tag and get their values.
 
-{% comment %}start snippet id=examplesdescription|javadoc=true|url=org.apache.struts2.components.Bean {% endcomment %}
-<p> <p>This example instantiates a bean called SimpleCounter and sets the foo property (setFoo('BAR')). The
- SimpleCounter object is then pushed onto the Valuestack, which means that we can call its accessor methods (getFoo())
- with the Property tag and get their values.</p>
+In the above example, the id has been set to a value of `counter`. This means that the `SimpleCounter` class
+will be placed into the stack's context. You can access the `SimpleCounter` class using a Struts tag:
 
- <p>In the above example, the id has been set to a value of <i>counter</i>. This means that the SimpleCounter class
- will be placed into the stack's context. You can access the SimpleCounter class using a Struts tag:</p>
+### jsp form
 
- <pre>
- <-- jsp form -->
+```jsp
  <s:property value="#counter" />
+```
+ 
+### freemarker form
 
- <-- freemarker form -->
+```
  [s:property value="#counter.foo"/]
- </pre>
+```
 
- <p>In the property tag example, the <i>#</i> tells Ognl to search the context for the SimpleCounter class which has
- an id(key) of <i>counter</i></p>
-</p>
-{% comment %}end snippet id=examplesdescription|javadoc=true|url=org.apache.struts2.components.Bean {% endcomment %}
+In the property tag example, the <i>#</i> tells Ognl to search the context for the SimpleCounter class which has 
+an `id(key)` of `counter`.
diff --git a/source/tag-developers/cewolf-charts-using-velocity-templates.md b/source/tag-developers/cewolf-charts-using-velocity-templates.md
index a7973c4..25a0e23 100644
--- a/source/tag-developers/cewolf-charts-using-velocity-templates.md
+++ b/source/tag-developers/cewolf-charts-using-velocity-templates.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/checkbox-tag.md b/source/tag-developers/checkbox-tag.md
index 216ed7d..c2c7718 100644
--- a/source/tag-developers/checkbox-tag.md
+++ b/source/tag-developers/checkbox-tag.md
@@ -1,785 +1,41 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: checkbox tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # checkbox
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Renders an HTML input element of type checkbox, populated by the specified property from the ValueStack.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/checkbox-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/checkbox-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Checkbox {% endcomment %}
-<p> Renders an HTML input element of type checkbox, populated by the specified property from the ValueStack.
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Checkbox {% endcomment %}
+## Examples
 
-__Parameters__
+### JSP
 
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/checkbox.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">fieldValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The actual HTML value attribute of the checkbox.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/checkbox.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Checkbox {% endcomment %}
-
-```xml
- JSP:
- <s:checkbox label="checkbox test" name="checkboxField1" value="aBoolean" fieldValue="true"/>
-
- Velocity:
- #tag( Checkbox "label=checkbox test" "name=checkboxField1" "value=aBoolean" )
-
- Resulting HTML (simple template, aBoolean == true):
- <input type="checkbox" name="checkboxField1" value="true" checked="checked" />
-
-
+```jsp
+<s:checkbox label="checkbox test" name="checkboxField1" value="aBoolean" fieldValue="true"/>
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Checkbox {% endcomment %}
+### Velocity
+
+```
+#tag( Checkbox "label=checkbox test" "name=checkboxField1" "value=aBoolean" )
+```
+
+### Resulting HTML (simple template, aBoolean == true):
+
+```html
+<input type="checkbox" name="checkboxField1" value="true" checked="checked" />
+```
diff --git a/source/tag-developers/checkboxlist-tag.md b/source/tag-developers/checkboxlist-tag.md
index 349206e..0653835 100644
--- a/source/tag-developers/checkboxlist-tag.md
+++ b/source/tag-developers/checkboxlist-tag.md
@@ -1,873 +1,31 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: checkboxlist tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # checkboxlist
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+Note that the `listkey` and `listvalue` attribute will default to `"key"` and `"value"` respectively only when 
+the list attribute is evaluated to a Map or its descendant. Everything else will result in `listkey` and `listvalue` 
+to be null and not used.
 
-Note that the `listkey` and `listvalue` attribute will default to `"key"` and `"value"`
-respectively only when the list attribute is evaluated to a Map or its descendant.
-Everything else will result in `listkey` and `listvalue` to be null and not used.
-
-__Description__
+## Description
 
 Creates a series of checkboxes from a list. Setup is like `<s:select />` or `<s:radio />`, but creates checkbox tags.
 
-__Parameters__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/checkboxlist-description.html %}
 
-<table width="100%">
+## Attributes
 
-			<tr>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/checkboxlist-attributes.html %}
 
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
+## Examples
 
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listLabelKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field content from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValueKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value label from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set element name. Set Struts Action field to populate with selected list keys.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-</table>
-
-__Examples__
-
-```xml
+```jsp
  <s:checkboxlist name="foo" list="bar"/>
 ```
diff --git a/source/tag-developers/combobox-tag.md b/source/tag-developers/combobox-tag.md
index f06b420..dad38b9 100644
--- a/source/tag-developers/combobox-tag.md
+++ b/source/tag-developers/combobox-tag.md
@@ -1,984 +1,71 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: combobox tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # combobox
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+The combo box is basically an HTML INPUT of type text and HTML SELECT grouped together to give you a combo box
+functionality. You can place text in the INPUT control by using the SELECT control or type it in directly in
+the text field.
 
-__Description__
+In this example, the SELECT will be populated from id=year attribute. Counter is itself an Iterator. It will
+span from first to last. The population is done via javascript, and requires that this tag be surrounded by a
 
+Note that unlike the `<s:select/>` tag, there is no ability to define the individual `<option>` tags' id attribute
+or content separately. Each of these is simply populated from the toString() method of the list item. Presumably
+this is because the select box isn't intended to actually submit useful data, but to assist the user in filling
+out the text field.
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/combobox-description.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ComboBox {% endcomment %}
-<p> <p>
- The combo box is basically an HTML INPUT of type text and HTML SELECT grouped together to give you a combo box
- functionality. You can place text in the INPUT control by using the SELECT control or type it in directly in
- the text field.
- </p>
+## Attributes
 
- <p>
- In this example, the SELECT will be populated from id=year attribute. Counter is itself an Iterator. It will
- span from first to last. The population is done via javascript, and requires that this tag be surrounded by a
- <form>.
- </p>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/combobox-attributes.html %}
 
- <p>
- Note that unlike the <s:select/> tag, there is no ability to define the individual <option> tags' id attribute
- or content separately. Each of these is simply populated from the toString() method of the list item. Presumably
- this is because the select box isn't intended to actually submit useful data, but to assist the user in filling
- out the text field.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ComboBox {% endcomment %}
+## Examples
 
-__Parameters__
+### JSP:
 
+```jsp
+<-- Example One -->
+<s:bean name="struts.util.Counter" var="year">
+  <s:param name="first" value="text('firstBirthYear')"/>
+  <s:param name="last" value="2000"/>
 
+  <s:combobox label="Birth year" size="6" maxlength="4" name="birthYear" list="#year"/>
+</s:bean>
 
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/combobox.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">emptyOption</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Decide if an empty option is to be inserted. Default false.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the header key for the header option.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the header value for the header option.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Iterable source to populate from. If this is missing, the select widget is simply not displayed.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key used to retrieve the option key.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the value used to retrieve the option value.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">maxLength</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Deprecated. Use maxlength instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">maxlength</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML maxlength attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">readonly</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether the input is readonly</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML size attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">type</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">text</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Specifies the html5 type element to display. e.g. text, email, url</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/combobox.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.ComboBox {% endcomment %}
-
-```xml
- JSP:
- <-- Example One -->
- <s:bean name="struts.util.Counter" var="year">
-   <s:param name="first" value="text('firstBirthYear')"/>
-   <s:param name="last" value="2000"/>
-
-   <s:combobox label="Birth year" size="6" maxlength="4" name="birthYear" list="#year"/>
- </s:bean>
-
- <-- Example Two -->
- <s:combobox
-     label="My Favourite Fruit"
-     name="myFavouriteFruit"
-     list="{'apple','banana','grape','pear'}"
-     headerKey="-1"
-     headerValue="--- Please Select ---"
-     emptyOption="true"
-     value="banana" />
-
- <-- Example Two -->
- <s:combobox
-    label="My Favourite Color"
-    name="myFavouriteColor"
-    list="#{'red':'red','green':'green','blue':'blue'}"
+<-- Example Two -->
+<s:combobox
+    label="My Favourite Fruit"
+    name="myFavouriteFruit"
+    list="{'apple','banana','grape','pear'}"
     headerKey="-1"
     headerValue="--- Please Select ---"
     emptyOption="true"
-    value="green" />
+    value="banana" />
 
- Velocity:
- #tag( ComboBox "label=Birth year" "size=6" "maxlength=4" "name=birthYear" "list=#year" )
+<-- Example Two -->
+<s:combobox
+   label="My Favourite Color"
+   name="myFavouriteColor"
+   list="#{'red':'red','green':'green','blue':'blue'}"
+   headerKey="-1"
+   headerValue="--- Please Select ---"
+   emptyOption="true"
+   value="green" />
+```
+ 
+### Velocity:
 
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.ComboBox {% endcomment %}
+#tag( ComboBox "label=Birth year" "size=6" "maxlength=4" "name=birthYear" "list=#year" )
+```
diff --git a/source/tag-developers/component-tag.md b/source/tag-developers/component-tag.md
index a449a30..f6fd1c0 100644
--- a/source/tag-developers/component-tag.md
+++ b/source/tag-developers/component-tag.md
@@ -1,834 +1,87 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: component tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
+
 # component
 
-__Description__
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
+## Description
 
+Renders an custom UI widget using the specified templates. Additional objects can be passed in to the template
+using the [param](param-tag) tags.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.GenericUIBean {% endcomment %}
-
- Renders an custom UI widget using the specified templates. Additional objects can be passed in to the template
- using the `param` tags.
-
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/component-description.html %}
 
 ### Freemarker:
 
- Objects provided can be retrieve from within the template via `$parameters._paramname_`.
+Objects provided can be retrieve from within the template via `$parameters._paramname_`.
 
 ### JSP:
 
- Objects provided can be retrieve from within the template via `<s:property value="%{parameters._paramname_}" />`
+Objects provided can be retrieve from within the template via `<s:property value="%{parameters._paramname_}" />`
 
-
- In the bottom JSP and Velocity samples, two parameters are being passed in to the component. From within the
- component, they can be accessed as:
-
+In the bottom JSP and Velocity samples, two parameters are being passed in to the component. From within the
+component, they can be accessed as:
 
 ### Freemarker:
  
- `$parameters.get('key1')` and `$parameters.get('key2')` or `$parameters.key1` and `$parameters.key2`
+`$parameters.get('key1')` and `$parameters.get('key2')` or `$parameters.key1` and `$parameters.key2`
 
 ### JSP:
 
- `<s:property value="%{parameters.key1}" />` and `<s:property value="%{'parameters.key2'}" />` or
- `<s:property value="%{parameters.get('key1')}" />` and `<s:property value="%{parameters.get('key2')}" />`
+`<s:property value="%{parameters.key1}" />` and `<s:property value="%{'parameters.key2'}" />` or
+`<s:property value="%{parameters.get('key1')}" />` and `<s:property value="%{parameters.get('key2')}" />`
 
+Currently, your custom UI components can be written in Velocity, JSP, or Freemarker, and the correct rendering
+engine will be found based on file extension.
 
+**Remember:** the value `params` will always be resolved against the ValueStack so if you mean to pass a string literal 
+to your component, make sure to wrap it in single quotes i.e. `value="'value1'"` (note the opening `"'` and closing `'"` 
+otherwise, the value stack will search for an Object on the stack with a method of `getValue1()`.
 
- Currently, your custom UI components can be written in Velocity, JSP, or Freemarker, and the correct rendering
- engine will be found based on file extension.
-
-
-
- **Remember:** the value `params` will always be resolved against the ValueStack so if you mean to pass a
- string literal to your component, make sure to wrap it in single quotes i.e. `value="'value1'"` (note the opening `"'` and closing `'"` otherwise, the value
- stack will search for an Object on the stack with a method of `getValue1()`.
-
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.GenericUIBean {% endcomment %}
-
-{% comment %}start snippet id=note|javadoc=true|url=org.apache.struts2.components.GenericUIBean {% endcomment %}
-
- If JSP is used as the template, the JSP template itself must lie within the
- webapp itself and not the classpath. Unlike Freemarker or Velocity, JSP template
- could not be picked up from the classpath.
-
-
-{% comment %}end snippet id=note|javadoc=true|url=org.apache.struts2.components.GenericUIBean {% endcomment %}
+If JSP is used as the template, the JSP template itself must lie within the webapp itself and not the classpath. 
+Unlike Freemarker or Velocity, JSP template could not be picked up from the classpath.
 
 **(!) templateDir and theme attribute**
 
-
-> 
-
-> 
-
-> The final path to the template will be built using the _templateDir_  and _template_  attributes, like \${templateDir}/\${theme}/\${template}. If for example your component is under /components/html/option.jsp, you would have to set templateDir="components", theme="html" and template="options.jsp". 
-
-> 
-
-> 
+> The final path to the template will be built using the _templateDir_  and _template_  attributes, like 
+> \${templateDir}/\${theme}/\${template}. If for example your component is under _/components/html/option.jsp_, 
+> you would have to set templateDir="components", theme="html" and template="options.jsp". 
 
 > For any Struts tag that you use in your component, make sure that you set its templateDir="template"
 
-> 
+## Attributes
 
-__Parameters__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/component-attributes.html %}
 
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/component.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/component.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.GenericUIBean {% endcomment %}
+## Examples
 
 ### JSP
 
-```
+```jsp
 <s:component template="/my/custom/component.vm"/>
 ```
+
 or
 
-```
+```jsp
 <s:component template="/my/custom/component.vm">
     <s:param name="key1" value="value1"/>
     <s:param name="key2" value="value2"/>
 </s:component>
 ```
 
-
 ### Velocity
 
 ```
 #s-component( "template=/my/custom/component.vm" )
 ```
+
 or
 
 ```
@@ -843,13 +96,12 @@
 ```
 <@s..component template="/my/custom/component.ftl" />
 ```
+
 or
 
 ```
-<@s..component template="/my/custom/component.ftl">
-    <@s..param name="key1" value="%{'value1'}" />
-    <@s..param name="key2" value="%{'value2'}" />
-</@s..component>
+<@s.component template="/my/custom/component.ftl">
+    <@s.param name="key1" value="%{'value1'}" />
+    <@s.param name="key2" value="%{'value2'}" />
+</@s.component>
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.GenericUIBean {% endcomment %}
diff --git a/source/tag-developers/css-xhtml-theme.md b/source/tag-developers/css-xhtml-theme.md
index 87ba989..ce70076 100644
--- a/source/tag-developers/css-xhtml-theme.md
+++ b/source/tag-developers/css-xhtml-theme.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 parent:
   url: themes-and-templates.html
diff --git a/source/tag-developers/date-tag.md b/source/tag-developers/date-tag.md
index 53d0fc6..e77e73a 100644
--- a/source/tag-developers/date-tag.md
+++ b/source/tag-developers/date-tag.md
@@ -1,242 +1,93 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: date tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # date
 
-__Description__
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
+## Description
 
+Format Date object in different ways.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Date {% endcomment %}
-<p>
- Format Date object in different ways.
- <p>
- The date tag will allow you to format a Date in a quick and easy way.
- You can specify a <b>custom format</b> (eg. "dd/MM/yyyy hh:mm"), you can generate
- <b>easy readable notations</b> (like "in 2 hours, 14 minutes"), or you can just fall back
- on a <b>predefined format</b> with key 'struts.date.format' in your properties file.
- </p>
+The date tag will allow you to format a Date in a quick and easy way. You can specify a **custom format** 
+(eg. "dd/MM/yyyy hh:mm"), you can generate **easy readable notations** (like "in 2 hours, 14 minutes"), or you can just 
+fall back on a **predefined format** with key `struts.date.format` in your properties file.
 
- <p>
- If that key is not defined, it will finally fall back to the default DateFormat.MEDIUM
- formatting.
- </p>
+If that key is not defined, it will finally fall back to the default `DateFormat.MEDIUM` formatting.
 
- <p>
- <b>Note</b>: If the requested Date object isn't found on the stack, a blank will be returned.
- </p>
+> Note: If the requested Date object isn't found on the stack, a blank will be returned.
 
- <p>
- Configurable attributes are:
- </p>
+Configurable attributes are:
+- name
+- nice
+- format
 
- <ul>
-    <li>name</li>
-    <li>nice</li>
-    <li>format</li>
- </ul>
+Following how the date component will work, depending on the value of nice attribute (which by default is false) 
+and the format attribute.
 
- <p>
- Following how the date component will work, depending on the value of nice attribute
- (which by default is false) and the format attribute.
- </p>
+**Condition 1**: With nice attribute as true
 
- <p>
- <b><u>Condition 1: With nice attribute as true</u></b>
- </p>
- <table border="1" summary="">
-   <tr>
-      <td>i18n key</td>
-      <td>default</td>
-   </tr>
-   <tr>
-      <td>struts.date.format.past</td>
-      <td>{0} ago</td>
-   </tr>
-   <tr>
-      <td>struts.date.format.future</td>
-      <td>in {0}</td>
-   </tr>
-   <tr>
-      <td>struts.date.format.seconds</td>
-      <td>an instant</td>
-   </tr>
-   <tr>
-      <td>struts.date.format.minutes</td>
-      <td>{0,choice,1#one minute|1<{0} minutes}</td>
-   </tr>
-   <tr>
-      <td>struts.date.format.hours</td>
-      <td>{0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes}</td>
-   </tr>
-   <tr>
-      <td>struts.date.format.days</td>
-      <td>{0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours}</td>
-   </tr>
-   <tr>
-      <td>struts.date.format.years</td>
-      <td>{0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days}</td>
-   </tr>
- </table>
+<table>
+  <tr>
+     <td>i18n key</td>
+     <td>default</td>
+  </tr>
+  <tr>
+     <td>struts.date.format.past</td>
+     <td>{0} ago</td>
+  </tr>
+  <tr>
+     <td>struts.date.format.future</td>
+     <td>in {0}</td>
+  </tr>
+  <tr>
+     <td>struts.date.format.seconds</td>
+     <td>an instant</td>
+  </tr>
+  <tr>
+     <td>struts.date.format.minutes</td>
+     <td>{0,choice,1#one minute|1<{0} minutes}</td>
+  </tr>
+  <tr>
+     <td>struts.date.format.hours</td>
+     <td>{0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes}</td>
+  </tr>
+  <tr>
+     <td>struts.date.format.days</td>
+     <td>{0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours}</td>
+  </tr>
+  <tr>
+     <td>struts.date.format.years</td>
+     <td>{0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days}</td>
+  </tr>
+</table>
 
- <p>
- <b><u>Condition 2: With nice attribute as false and format attribute is specified eg. dd/MM/yyyyy </u></b>
- </p>
+**Condition 2**: With nice attribute as false and format attribute is specified eg. dd/MM/yyyyy
 
- <p>In this case the format attribute will be used.</p>
+In this case the format attribute will be used.
 
- <p>
- <b><u>Condition 3: With nice attribute as false and no format attribute is specified </u></b>
- </p>
- <table border="1" summary="">
-    <tr>
-      <td>i18n key</td>
-      <td>default</td>
-   </tr>
-   <tr>
-      <td>struts.date.format</td>
-      <td>if one is not found DateFormat.MEDIUM format will be used</td>
-   </tr>
- </table>
-
-
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Date {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/date.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">format</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Date or DateTime format pattern</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The date value to format</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">nice</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to print out the date nicely</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">timezone</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The specific timezone in which to format the date</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name used to reference the value pushed into the Value Stack</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/date.html {% endcomment %}
+**Condition 3**: With nice attribute as false and no format attribute is specified
+ 
+|i18n key|default|
+|--------|-------|
+|struts.date.format|if one is not found DateFormat.MEDIUM format will be used|
 
-__Examples__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/date-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/date-attributes.html %}
 
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Date {% endcomment %}
+## Examples
 
-```xml
+```jsp
   <s:date name="person.birthday" format="dd/MM/yyyy" />
   <s:date name="person.birthday" format="%{getText('some.i18n.key')}" />
   <s:date name="person.birthday" nice="true" />
   <s:date name="person.birthday" />
-
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Date {% endcomment %}
diff --git a/source/tag-developers/datetextfield-tag.md b/source/tag-developers/datetextfield-tag.md
index 61da853..167148c 100644
--- a/source/tag-developers/datetextfield-tag.md
+++ b/source/tag-developers/datetextfield-tag.md
@@ -1,767 +1,21 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: datetextfield tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # datetextfield
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/datetextfield-description.html %}
 
-__Description__
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/datetextfield-attributes.html %}
 
-
-{% snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.DateTextField %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/datetextfield.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">format</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Date format attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/datetextfield.html {% endcomment %}
-
-__Examples__
-
-
-
-{% snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.DateTextField %}
+## Examples
diff --git a/source/tag-developers/debug-tag.md b/source/tag-developers/debug-tag.md
index da102ce..959f243 100644
--- a/source/tag-developers/debug-tag.md
+++ b/source/tag-developers/debug-tag.md
@@ -1,8 +1,11 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: debug tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # debug
 
-Outputs the content of the Value Stack.
+Outputs the content of the Value Stack only if `struts.devMode` is enabled.
diff --git a/source/tag-developers/dojo-a-tag.md b/source/tag-developers/dojo-a-tag.md
index aecd558..70fd100 100644
--- a/source/tag-developers/dojo-a-tag.md
+++ b/source/tag-developers/dojo-a-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # dojo anchor
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-autocompleter-tag.md b/source/tag-developers/dojo-autocompleter-tag.md
index 1486f77..54470b6 100644
--- a/source/tag-developers/dojo-autocompleter-tag.md
+++ b/source/tag-developers/dojo-autocompleter-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # autocompleter
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-bind-tag.md b/source/tag-developers/dojo-bind-tag.md
index c90a3de..dc56d49 100644
--- a/source/tag-developers/dojo-bind-tag.md
+++ b/source/tag-developers/dojo-bind-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # bind
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-datetimepicker-tag.md b/source/tag-developers/dojo-datetimepicker-tag.md
index 37222e2..6a03884 100644
--- a/source/tag-developers/dojo-datetimepicker-tag.md
+++ b/source/tag-developers/dojo-datetimepicker-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # datetimepicker
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-div-tag.md b/source/tag-developers/dojo-div-tag.md
index 3a32666..4e9a707 100644
--- a/source/tag-developers/dojo-div-tag.md
+++ b/source/tag-developers/dojo-div-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # dojo div
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-head-tag.md b/source/tag-developers/dojo-head-tag.md
index 47c39bc..c737563 100644
--- a/source/tag-developers/dojo-head-tag.md
+++ b/source/tag-developers/dojo-head-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # dojo head
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-submit-tag.md b/source/tag-developers/dojo-submit-tag.md
index dc6d96b..f7854f4 100644
--- a/source/tag-developers/dojo-submit-tag.md
+++ b/source/tag-developers/dojo-submit-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # dojo submit
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-tabbedpanel-tag.md b/source/tag-developers/dojo-tabbedpanel-tag.md
index 0129751..85ff4fa 100644
--- a/source/tag-developers/dojo-tabbedpanel-tag.md
+++ b/source/tag-developers/dojo-tabbedpanel-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # tabbedpanel
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-textarea-tag.md b/source/tag-developers/dojo-textarea-tag.md
index a6576a9..115e42e 100644
--- a/source/tag-developers/dojo-textarea-tag.md
+++ b/source/tag-developers/dojo-textarea-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # dojo textarea
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-tree-tag.md b/source/tag-developers/dojo-tree-tag.md
index 557c0bc..b34c1d5 100644
--- a/source/tag-developers/dojo-tree-tag.md
+++ b/source/tag-developers/dojo-tree-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # tree
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/dojo-treenode-tag.md b/source/tag-developers/dojo-treenode-tag.md
index 13154d5..e548d15 100644
--- a/source/tag-developers/dojo-treenode-tag.md
+++ b/source/tag-developers/dojo-treenode-tag.md
@@ -1,10 +1,12 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # treenode
 
+> NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
+
 __Description__
 
 
diff --git a/source/tag-developers/doubleselect-tag.md b/source/tag-developers/doubleselect-tag.md
index 69fce3f..d05141d 100644
--- a/source/tag-developers/doubleselect-tag.md
+++ b/source/tag-developers/doubleselect-tag.md
@@ -1,1509 +1,30 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: doubleselect tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # doubleselect
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+Note that the `doublelistkey` and `doublelistvalue` attribute will default to `key` and `value` respectively only when 
+the `doublelist` attribute is evaluated to a Map or its descendant. Other thing else, will result in `doublelistkey` 
+and `doublelistvalue` to be null and not used.
 
-| 
+## Description
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/doubleselect-description.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.DoubleListUIBean {% endcomment %}
-<p> <p>
- Note that the doublelistkey and doublelistvalue attribute will default to "key" and "value"
- respectively only when the doublelist attribute is evaluated to a Map or its descendant.
- Other thing else, will result in doublelistkey and doublelistvalue to be null and not used.
- </p>
+## Attributes
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.DoubleListUIBean {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/doubleselect-attributes.html %}
 
-__Description__
+## Examples
 
-
-
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.DoubleSelect {% endcomment %}
-<p> Renders two HTML select elements with second one changing displayed values depending on selected entry of first one.
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.DoubleSelect {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/doubleselect.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleAccesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class for the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style for the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleDisabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Decides if a disable attribute should be added to the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleEmptyOption</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Decides if the second list will add an empty option</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleHeaderKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The header key for the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleHeaderValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The header value for the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleId</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The id of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleList</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The second iterable source to populate from.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of second list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of second list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The key expression to use for second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of second list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The value expression to use for second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleMultiple</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Decides if multiple attribute should be set on the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleName</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name for complete component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onblur attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onchange attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onclick attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOndblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the ondbclick attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onfocus attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onkeydown attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onkeypress attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onkeyup attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmousedown attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmousemove attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmouseout attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmouseover attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmouseup attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onselect attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleSize</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the size attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The value expression for complete component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">emptyOption</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Decides of an empty option is to be inserted in the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">formName</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The form name this component resides in and populates to</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the header value of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listLabelKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field content from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValueKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value label from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">multiple</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Size of the element box (# of elements to show)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/doubleselect.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.DoubleSelect {% endcomment %}
-
-```xml
+```jsp
  <s:doubleselect label="doubleselect test1" name="menu" list="{'fruit','other'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />
  <s:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />
-
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.DoubleSelect {% endcomment %}
diff --git a/source/tag-developers/else-tag.md b/source/tag-developers/else-tag.md
index 8c1df08..0cfad2f 100644
--- a/source/tag-developers/else-tag.md
+++ b/source/tag-developers/else-tag.md
@@ -1,74 +1,28 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: else tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # else
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Perform basic condition flow. `else` tag can be only used with `if` tag or `elseif` tag.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/else-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/else-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Else {% endcomment %}
-<p>
- <p>Perform basic condition flow. 'If' tag could be used by itself or with 'Else If' Tag and/or single/multiple 'Else'
- Tag.</p>
+## Examples
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Else {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/else.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/else.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Else {% endcomment %}
-
-```xml
+```jsp
   <s:if test="%{false}">
       <div>Will Not Be Executed</div>
   </s:if>
@@ -78,7 +32,4 @@
   <s:else>
       <div>Will Not Be Executed</div>
   </s:else>
-
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Else {% endcomment %}
diff --git a/source/tag-developers/elseif-tag.md b/source/tag-developers/elseif-tag.md
index cb4d9df..8772f6f 100644
--- a/source/tag-developers/elseif-tag.md
+++ b/source/tag-developers/elseif-tag.md
@@ -1,100 +1,35 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: elseif tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # elseif
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Perform basic condition flow. `elseif` tag can be only used with `if` tag.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/elseif-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/elseif-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ElseIf {% endcomment %}
-<p>
- <p>Perform basic condition flow. 'If' tag could be used by itself or with 'Else If' Tag and/or single/multiple 'Else'
- Tag.</p>
+## Examples
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ElseIf {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/elseif.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">test</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Expression to determine if body of tag is to be displayed</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/elseif.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.ElseIf {% endcomment %}
-
-```xml
-  <s:if test="%{false}">
-      <div>Will Not Be Executed</div>
-  </s:if>
-  <s:elseif test="%{true}">
-      <div>Will Be Executed</div>
-  </s:elseif>
-  <s:else>
-      <div>Will Not Be Executed</div>
-  </s:else>
-
+```jsp
+<s:if test="%{false}">
+    <div>Will Not Be Executed</div>
+</s:if>
+<s:elseif test="%{true}">
+    <div>Will Be Executed</div>
+</s:elseif>
+<s:else>
+    <div>Will Not Be Executed</div>
+</s:else>
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.ElseIf {% endcomment %}
diff --git a/source/tag-developers/extending-themes.md b/source/tag-developers/extending-themes.md
index 8b297b6..75b8d57 100644
--- a/source/tag-developers/extending-themes.md
+++ b/source/tag-developers/extending-themes.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/fielderror-tag.md b/source/tag-developers/fielderror-tag.md
index e798e79..6c13ffb 100644
--- a/source/tag-developers/fielderror-tag.md
+++ b/source/tag-developers/fielderror-tag.md
@@ -1,826 +1,61 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: fielderror tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # fielderror
 
-__Description__
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
+## Description
 
+Render field errors if they exists. Specific layout depends on the particular theme. The field error strings will be 
+html escaped by default.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.FieldError {% endcomment %}
-<p>
- Render field errors if they exists. Specific layout depends on the particular theme.
- The field error strings will be html escaped by default.
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/fielderror-description.html %}
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.FieldError {% endcomment %}
+## Attributes
 
-__Parameters__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/fielderror-attributes.html %}
 
+## Examples
 
+**Example 1**: display all field errors
 
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/fielderror.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escape</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top"> Whether to escape HTML</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">fieldName</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Field name for single field attribute usage</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/fielderror.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.FieldError {% endcomment %}
-
-```xml
-
-    <!-- example 1 -->
-    <s:fielderror />
-
-    <!-- example 2 -->
-    <s:fielderror>
-         <s:param>field1</s:param>
-         <s:param>field2</s:param>
-    </s:fielderror>
-    <s:form .... >
-       ....
-    </s:form>
-
-    OR
-
-    <s:fielderror>
-          <s:param value="%{'field1'}" />
-          <s:param value="%{'field2'}" />
-    </s:fielderror>
-    <s:form .... >
-       ....
-    </s:form>
-
-    OR
-
-    <s:fielderror fieldName="field1" />
-
-
+```jsp
+<s:fielderror />
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.FieldError {% endcomment %}
+**Example 2**: display field errors only for _field1_ and _field2_
 
+```jsp
+<s:fielderror>
+     <s:param>field1</s:param>
+     <s:param>field2</s:param>
+</s:fielderror>
+<s:form .... >
+   ....
+</s:form>
+```
 
-{% comment %}start snippet id=description|javadoc=true|url=org.apache.struts2.components.FieldError {% endcomment %}
-<p>
- Example 1: display all field errors<br>
- Example 2: display field errors only for 'field1' and 'field2'<br>
+or
 
-</p>
-{% comment %}end snippet id=description|javadoc=true|url=org.apache.struts2.components.FieldError {% endcomment %}
+```jsp
+<s:fielderror>
+  <s:param value="%{'field1'}" />
+  <s:param value="%{'field2'}" />
+</s:fielderror>
+<s:form .... >
+   ....
+</s:form>
+```
+
+or
+
+```jsp
+<s:fielderror fieldName="field1" />
+<s:fielderror fieldName="field1" />
+```
diff --git a/source/tag-developers/file-tag.md b/source/tag-developers/file-tag.md
index 595550d..ac69c9e 100644
--- a/source/tag-developers/file-tag.md
+++ b/source/tag-developers/file-tag.md
@@ -1,794 +1,26 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: file tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # file
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/file-description.html %}
 
-__Description__
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/file-attributes.html %}
 
+## Examples
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.File {% endcomment %}
-<p> Renders an HTML file input element.
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.File {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/file.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accept</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML accept attribute to indicate accepted file mimetypes</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML size attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/file.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.File {% endcomment %}
-
-```xml
+```jsp
  <s:file name="anUploadFile" accept="text/*" />
  <s:file name="anohterUploadFIle" accept="text/html,text/plain" />
-
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.File {% endcomment %}
diff --git a/source/tag-developers/form-tag.md b/source/tag-developers/form-tag.md
index 9ae7796..32f68dd 100644
--- a/source/tag-developers/form-tag.md
+++ b/source/tag-developers/form-tag.md
@@ -1,1019 +1,43 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: form tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # form
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/form-description.html %}
 
-__Description__
+The remote form allows the form to be submitted without the page being refreshed. The results from the form can be 
+inserted into any HTML element on the page.
 
+> NOTE: The order / logic in determining the posting url of the generated HTML form is as follows:
 
+1. If the action attribute is not specified, then the current request will be used to determine the posting url
+2. If the action is given, Struts will try to obtain an ActionConfig. This will be successful if the action attribute 
+  is a valid action alias defined struts.xml.
+3. If the action is given and is not an action alias defined in struts.xml, Struts will used the action attribute 
+  as if it is the posting url, separting the namespace from it and using UrlHelper to generate the final url.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Form {% endcomment %}
-<p> <p>
- Renders HTML an input form.
- </p>
+## Attributes
 
- <p>
- The remote form allows the form to be submitted without the page being refreshed. The results from the form
- can be inserted into any HTML element on the page.
- </p>
- <p>
- NOTE:<br>
- The order / logic in determining the posting url of the generated HTML form is as follows:
- </p>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/form-attributes.html %}
 
- <ol>
- <li>
- If the action attribute is not specified, then the current request will be used to
- determine the posting url
- </li>
- <li>
- If the action is given, Struts will try to obtain an ActionConfig. This will be
- successful if the action attribute is a valid action alias defined struts.xml.
- </li>
- <li>
- If the action is given and is not an action alias defined in struts.xml, Struts
- will used the action attribute as if it is the posting url, separting the namespace
- from it and using UrlHelper to generate the final url.
- </li>
- </ol>
+## Examples
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Form {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/form.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">acceptcharset</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The accepted charsets for this form. The values may be comma or blank delimited.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">action</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">current action</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set action name to submit to, without .action suffix</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">enctype</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML form enctype attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">focusElement</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Id of element that will receive the focus when page loads.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">includeContext</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether actual context should be included in URL</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">method</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML form method attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">namespace</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">current namespace</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Namespace for action to submit to</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onreset</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML onreset attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onsubmit</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML onsubmit attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">openTemplate</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">portletMode</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The portlet mode to display after the form submit</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">target</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML form target attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">validate</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether client side/remote validation should be performed. Only useful with theme xhtml/ajax</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">windowState</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The window state to display after the form submit</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/form.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Form {% endcomment %}
-
-```xml
-
+```jsp
  <s:form ... />
-
-
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Form {% endcomment %}
+## Validation
 
-__Validation__
-
-There are two flavours _Client Side Validation_ , depending on the theme you are using (xhtml, ajax, etc). If you are using the [xhtml theme](xhtml-theme.html) or [css_xhtml theme](css-xhtml-theme.html), pure client side validation will be used. If you are using the [ajax theme](ajax-theme.html), a special AJAX-based validation will take place. Read the _Client Side Validation_ docs for more information.
+There are two flavours [Client Side Validation](../core-developers/client-side-validation), depending on the theme you 
+are using (xhtml, ajax, etc). If you are using the [xhtml theme](xhtml-theme) or [css_xhtml theme](css-xhtml-theme), 
+pure client side validation will be used. Read the [Client Side Validation](../core-developers/client-side-validation)
+docs for more information.
diff --git a/source/tag-developers/form-tags.md b/source/tag-developers/form-tags.md
index 94fb804..ca387b1 100644
--- a/source/tag-developers/form-tags.md
+++ b/source/tag-developers/form-tags.md
@@ -1,19 +1,23 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # Form Tags
+{:.no_toc}
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-| 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Within the form tags, there are two classes of tags: the form tag itself, and all other tags, which make up the individual form elements. The behavior of the form tag is different than the elements enclosed within it.
+Within the form tags, there are two classes of tags: the form tag itself, and all other tags, which make up
+the individual form elements. The behavior of the form tag is different than the elements enclosed within it.
 
-__Form Tag Themes__
+## Form Tag Themes
 
-As explained in [Themes and Templates](themes-and-templates.html), the HTML Tags (which includes Form Tags) are all driven by templates. Templates are grouped together to create themes. The framework bundles three themes in the distribution.
+As explained in [Themes and Templates](themes-and-templates), the HTML Tags (which includes Form Tags) are all driven
+by templates. Templates are grouped together to create themes. The framework bundles three themes in the distribution.
 
 |simple|Sometimes _too_  simple|
 |------|-----------------------|
@@ -22,365 +26,341 @@
 
 The predefined themes can be used "as is" or customized.
 
+> The `xhtml` theme renders out a two-column table. If a different layout is needed, do _not_ write your own HTML.
+> Create a new theme or utilize the simple theme.
 
+## Simple theme caveats
 
-| The xhtml theme renders out a two-column table. If a different layout is needed, do _not_  write your own HTML. Create a new theme or utilize the simple theme.
+The downside of using the simple theme is that it doesn't support as many of the attributes that the other themes do.
+For example, the `label` attribute does nothing in the simple theme, and the automatic display of error messages
+is not supported.
 
-| 
+## Common Attributes
 
-__Simple theme caveats__
+All the form tags extend the UIBean class. This base class provides a set of common attributes, that can be grouped 
+in to three categories: _templated-related_, _javascript-related_, and _general_ attributes. The individual attributes
+are documented on each tag's reference page.
 
-The downside of using the simple theme is that it doesn't support as many of the attributes that the other themes do. For example, the `label` attribute does nothing in the simple theme, and the automatic display of error messages is not supported.
+In addition to the common attributes, a special attribute exists for all form element tags: `form` (`${parameters.form}`). 
+The `form` property represents the attributes used to render the form tag, such as the form's id. In a template, 
+the form's ID can be found by calling `${parameters.form.id}`.
 
-__Common Attributes__
+## Template-Related Attributes
 
-All the form tags extend the UIBean class. This base class provides a set of common attributes, that can be grouped in to three categories: `templated-related`, javascript-related, and general attributes. The individual attributes are documented on each tag's reference page.
+<table border="1" summary="">
+   <thead>
+      <tr>
+         <td>Attribute</td>
+         <td>Theme</td>
+         <td>Data Types</td>
+         <td>Description</td>
+      </tr>
+   </thead>
+   <tbody>
+      <tr>
+         <td>templateDir</td>
+         <td>n/a</td>
+         <td>String</td>
+         <td>define the template directory</td>
+      </tr>
+      <tr>
+         <td>theme</td>
+         <td>n/a</td>
+         <td>String</td>
+         <td>define the theme name</td>
+      </tr>
+      <tr>
+         <td>template</td>
+         <td>n/a</td>
+         <td>String</td>
+         <td>define the template name</td>
+      </tr>
+      <tr>
+         <td>themeExpansionToken</td>
+         <td>n/a</td>
+         <td>String</td>
+         <td>special token (defined with struts.ui.theme.expansion.token) used to search for template in parent theme
+         (don't use it separately!)</td>
+      </tr>
+      <tr>
+         <td>expandTheme</td>
+         <td>n/a</td>
+         <td>String</td>
+         <td>concatenation of themeExpansionToken and theme which tells internal template loader mechanism
+         to try load template from current theme and then from parent theme (and parent theme, and so on)
+         when used with <#include/> directive</td>
+      </tr>
+   </tbody>
+</table>
 
-In addition to the common attributes, a special attribute exists for all form element tags: `form` (\${parameters.form}). The `form` property represents the attributes used to render the form tag, such as the form's id. In a template, the form's ID can be found by calling \${parameters.form.id}.
+## Javascript-Related Attributes
 
-__Template-Related Attributes__
+<table border="1" summary="">
+   <thead>
+      <tr>
+         <td>Attribute</td>
+         <td>Theme</td>
+         <td>Data Types</td>
+         <td>Description</td>
+      </tr>
+   </thead>
+   <tbody>
+      <tr>
+         <td>onclick</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onclick attribute</td>
+      </tr>
+      <tr>
+         <td>ondblclick</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript ondbclick attribute</td>
+      </tr>
+      <tr>
+         <td>onmousedown</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onmousedown attribute</td>
+      </tr>
+      <tr>
+         <td>onmouseup</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onmouseup attribute</td>
+      </tr>
+      <tr>
+         <td>onmouseover</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onmouseover attribute</td>
+      </tr>
+      <tr>
+         <td>onmouseout</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onmouseout attribute</td>
+      </tr>
+      <tr>
+         <td>onfocus</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onfocus attribute</td>
+      </tr>
+      <tr>
+         <td>onblur</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onblur attribute</td>
+      </tr>
+      <tr>
+         <td>onkeypress</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onkeypress attribute</td>
+      </tr>
+      <tr>
+         <td>onkeyup</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onkeyup attribute</td>
+      </tr>
+      <tr>
+         <td>onkeydown</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onkeydown attribute</td>
+      </tr>
+      <tr>
+         <td>onselect</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onselect attribute</td>
+      </tr>
+      <tr>
+         <td>onchange</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>html javascript onchange attribute</td>
+      </tr>
+   </tbody>
+</table>
 
+## Tooltip Related Attributes
 
-
-{% comment %}start snippet id=templateRelatedAttributes|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-<p>
- <table border="1" summary="">
-    <thead>
-       <tr>
-          <td>Attribute</td>
-          <td>Theme</td>
-          <td>Data Types</td>
-          <td>Description</td>
-       </tr>
-    </thead>
-    <tbody>
-       <tr>
-          <td>templateDir</td>
-          <td>n/a</td>
-          <td>String</td>
-          <td>define the template directory</td>
-       </tr>
-       <tr>
-          <td>theme</td>
-          <td>n/a</td>
-          <td>String</td>
-          <td>define the theme name</td>
-       </tr>
-       <tr>
-          <td>template</td>
-          <td>n/a</td>
-          <td>String</td>
-          <td>define the template name</td>
-       </tr>
-       <tr>
-          <td>themeExpansionToken</td>
-          <td>n/a</td>
-          <td>String</td>
-          <td>special token (defined with struts.ui.theme.expansion.token) used to search for template in parent theme
-          (don't use it separately!)</td>
-       </tr>
-       <tr>
-          <td>expandTheme</td>
-          <td>n/a</td>
-          <td>String</td>
-          <td>concatenation of themeExpansionToken and theme which tells internal template loader mechanism
-          to try load template from current theme and then from parent theme (and parent theme, and so on)
-          when used with <#include/> directive</td>
-       </tr>
-    </tbody>
- </table>
-
-</p>
-{% comment %}end snippet id=templateRelatedAttributes|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-
-__Javascript-Related Attributes__
-
-
-
-{% comment %}start snippet id=javascriptRelatedAttributes|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-<p>
- <table border="1" summary="">
-    <thead>
-       <tr>
-          <td>Attribute</td>
-          <td>Theme</td>
-          <td>Data Types</td>
-          <td>Description</td>
-       </tr>
-    </thead>
-    <tbody>
-       <tr>
-          <td>onclick</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onclick attribute</td>
-       </tr>
-       <tr>
-          <td>ondblclick</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript ondbclick attribute</td>
-       </tr>
-       <tr>
-          <td>onmousedown</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onmousedown attribute</td>
-       </tr>
-       <tr>
-          <td>onmouseup</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onmouseup attribute</td>
-       </tr>
-       <tr>
-          <td>onmouseover</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onmouseover attribute</td>
-       </tr>
-       <tr>
-          <td>onmouseout</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onmouseout attribute</td>
-       </tr>
-       <tr>
-          <td>onfocus</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onfocus attribute</td>
-       </tr>
-       <tr>
-          <td>onblur</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onblur attribute</td>
-       </tr>
-       <tr>
-          <td>onkeypress</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onkeypress attribute</td>
-       </tr>
-       <tr>
-          <td>onkeyup</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onkeyup attribute</td>
-       </tr>
-       <tr>
-          <td>onkeydown</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onkeydown attribute</td>
-       </tr>
-       <tr>
-          <td>onselect</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onselect attribute</td>
-       </tr>
-       <tr>
-          <td>onchange</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>html javascript onchange attribute</td>
-       </tr>
-    </tbody>
- </table>
-
-</p>
-{% comment %}end snippet id=javascriptRelatedAttributes|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-
-__Tooltip Related Attributes__
-
-
-
-{% comment %}start snippet id=tooltipattributes|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-<p>
- <table border="1" summary="">
-  <tr>
-     <td>Attribute</td>
-     <td>Data Type</td>
-     <td>Default</td>
-     <td>Description</td>
-  </tr>
-  <tr>
-      <td>tooltip</td>
-      <td>String</td>
-      <td>none</td>
-      <td>Set the tooltip of this particular component</td>
-  </tr>
-  <tr>
-      <td>jsTooltipEnabled</td>
-      <td>String</td>
-      <td>false</td>
-      <td>Enable js tooltip rendering</td>
-  </tr>
-    <tr>
-      <td>tooltipIcon</td>
-      <td>String</td>
-      <td>/struts/static/tooltip/tooltip.gif</td>
-      <td>The url to the tooltip icon</td>
+<table border="1" summary="">
+ <tr>
+    <td>Attribute</td>
+    <td>Data Type</td>
+    <td>Default</td>
+    <td>Description</td>
+ </tr>
+ <tr>
+     <td>tooltip</td>
+     <td>String</td>
+     <td>none</td>
+     <td>Set the tooltip of this particular component</td>
+ </tr>
+ <tr>
+     <td>jsTooltipEnabled</td>
+     <td>String</td>
+     <td>false</td>
+     <td>Enable js tooltip rendering</td>
+ </tr>
    <tr>
-      <td>tooltipDelay</td>
-      <td>String</td>
-      <td>500</td>
-      <td>Tooltip shows up after the specified timeout (miliseconds). A behavior similar to that of OS based tooltips.</td>
-   </tr>
-   <tr>
-      <td>key</td>
-      <td>simple</td>
-      <td>String</td>
-      <td>The name of the property this input field represents.  This will auto populate the name, label, and value</td>
-   </tr>
- </table>
+     <td>tooltipIcon</td>
+     <td>String</td>
+     <td>/struts/static/tooltip/tooltip.gif</td>
+     <td>The url to the tooltip icon</td>
+  <tr>
+     <td>tooltipDelay</td>
+     <td>String</td>
+     <td>500</td>
+     <td>Tooltip shows up after the specified timeout (miliseconds). A behavior similar to that of OS based tooltips.</td>
+  </tr>
+  <tr>
+     <td>key</td>
+     <td>simple</td>
+     <td>String</td>
+     <td>The name of the property this input field represents.  This will auto populate the name, label, and value</td>
+  </tr>
+</table>
 
-</p>
-{% comment %}end snippet id=tooltipattributes|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
+## General Attributes
 
-__General Attributes__
+<table border="1" summary="">
+   <thead>
+      <tr>
+         <td>Attribute</td>
+         <td>Theme</td>
+         <td>Data Types</td>
+         <td>Description</td>
+      </tr>
+   </thead>
+   <tbody>
+      <tr>
+         <td>cssClass</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>define html class attribute</td>
+      </tr>
+      <tr>
+         <td>cssStyle</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>define html style attribute</td>
+      </tr>
+      <tr>
+         <td>cssErrorClass</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>error class attribute</td>
+      </tr>
+      <tr>
+         <td>cssErrorStyle</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>error style attribute</td>
+      </tr>
+      <tr>
+         <td>title</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>define html title attribute</td>
+      </tr>
+      <tr>
+         <td>disabled</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>define html disabled attribute</td>
+      </tr>
+      <tr>
+         <td>label</td>
+         <td>xhtml</td>
+         <td>String</td>
+         <td>define label of form element</td>
+      </tr>
+      <tr>
+         <td>labelPosition</td>
+         <td>xhtml</td>
+         <td>String</td>
+         <td>define label position of form element (top/left), default to left</td>
+      </tr>
+      <tr>
+         <td>requiredPosition</td>
+         <td>xhtml</td>
+         <td>String</td>
+         <td>define required label position of form element (left/right), default to right</td>
+      </tr>
+      <tr>
+         <td>errorPosition</td>
+         <td>xhtml</td>
+         <td>String</td>
+         <td>define error position of form element (top|bottom), default to top</td>
+      </tr>
+      <tr>
+         <td>name</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>Form Element's field name mapping</td>
+      </tr>
+      <tr>
+         <td>requiredLabel</td>
+         <td>xhtml</td>
+         <td>Boolean</td>
+         <td>add * to label (true to add false otherwise)</td>
+      </tr>
+      <tr>
+         <td>tabIndex</td>
+         <td>simple</td>
+         <td>String</td>
+         <td>define html tabindex attribute</td>
+      </tr>
+      <tr>
+         <td>value</td>
+         <td>simple</td>
+         <td>Object</td>
+         <td>define value of form element</td>
+      </tr>
+   </tbody>
+</table>
 
+> Some tag attributes may not be utilized by all, or any, of the templates. For example, the form tag supports
+> the tabindex attribute, but none of the themes render the tabindex.
 
+## Value/Name Relationship
 
-{% comment %}start snippet id=generalAttributes|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-<p>
- <table border="1" summary="">
-    <thead>
-       <tr>
-          <td>Attribute</td>
-          <td>Theme</td>
-          <td>Data Types</td>
-          <td>Description</td>
-       </tr>
-    </thead>
-    <tbody>
-       <tr>
-          <td>cssClass</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>define html class attribute</td>
-       </tr>
-       <tr>
-          <td>cssStyle</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>define html style attribute</td>
-       </tr>
-       <tr>
-          <td>cssErrorClass</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>error class attribute</td>
-       </tr>
-       <tr>
-          <td>cssErrorStyle</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>error style attribute</td>
-       </tr>
-       <tr>
-          <td>title</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>define html title attribute</td>
-       </tr>
-       <tr>
-          <td>disabled</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>define html disabled attribute</td>
-       </tr>
-       <tr>
-          <td>label</td>
-          <td>xhtml</td>
-          <td>String</td>
-          <td>define label of form element</td>
-       </tr>
-       <tr>
-          <td>labelPosition</td>
-          <td>xhtml</td>
-          <td>String</td>
-          <td>define label position of form element (top/left), default to left</td>
-       </tr>
-       <tr>
-          <td>requiredPosition</td>
-          <td>xhtml</td>
-          <td>String</td>
-          <td>define required label position of form element (left/right), default to right</td>
-       </tr>
-       <tr>
-          <td>errorPosition</td>
-          <td>xhtml</td>
-          <td>String</td>
-          <td>define error position of form element (top|bottom), default to top</td>
-       </tr>
-       <tr>
-          <td>name</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>Form Element's field name mapping</td>
-       </tr>
-       <tr>
-          <td>requiredLabel</td>
-          <td>xhtml</td>
-          <td>Boolean</td>
-          <td>add * to label (true to add false otherwise)</td>
-       </tr>
-       <tr>
-          <td>tabIndex</td>
-          <td>simple</td>
-          <td>String</td>
-          <td>define html tabindex attribute</td>
-       </tr>
-       <tr>
-          <td>value</td>
-          <td>simple</td>
-          <td>Object</td>
-          <td>define value of form element</td>
-       </tr>
-    </tbody>
- </table>
+In many of the tags (except for the form tag) there is a unique relationship between the `name` and `value` attributes.
+The `name` attribute provides the name for the tag, which in turn is used as the control attribute when the form 
+is submitted. The value submitted is bound to the `name`. In most cases, the `name` maps to a simple JavaBean property, 
+such as "postalCode". On a submit, the value would be set to the property by calling the `setPostalCode` mutator.
 
-</p>
-{% comment %}end snippet id=generalAttributes|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-
-
-
-| Some tag attributes may not be utilized by all, or any, of the templates. For example, the form tag supports the tabindex attribute, but none of the themes render the tabindex.
-
-| 
-
-__Value/Name Relationship__
-
-In many of the tags (except for the form tag) there is a unique relationship between the `name` and `value` attributes. The `name` attribute provides the name for the tag, which in turn is used as the control attribute when the form is submitted. The value submitted is bound to the `name`. In most cases, the `name` maps to a simple JavaBean property, such as "postalCode". On a submit, the value would be set to the property by calling the `setPostalCode` mutator.
-
-Likewise, a form control could be populated by calling a JavaBean accessor, like `getPostalCode`. In the expression language, we can refer to the JavaBean property by name. An expression like "%{postalCode}" would in turn call `getPostalCode`.
-
+Likewise, a form control could be populated by calling a JavaBean accessor, like `getPostalCode`. In the expression l
+anguage, we can refer to the JavaBean property by name. An expression like "%{postalCode}" would in turn call `getPostalCode`.
 
 ```ftl
 <@s.form action="updateAddress">
     <@s.textfield label="Postal Code" name="postalCode" value="%{postalCode}"/>
     ...
 </@s.form>
-
 ```
 
-However, since the tags imply a relationship between the `name` and `value`, the `value` attribute is optional. If a `value` is not specified, by default, the JavaBean accessor is used instead.
-
+However, since the tags imply a relationship between the `name` and `value`, the `value` attribute is optional. 
+If a `value` is not specified, by default, the JavaBean accessor is used instead.
 
 ```ftl
 <@s.form action="updateAddress">
     <@s.textfield label="Postal Code" name="postalCode"/>
     ...
 </@s.form>
-
 ```
 
-While most attributes are exposed to the underlying templates as the same key as the attribute (\${parameters.label}), the `value` attribute is not. Instead, it can be accessed via the `nameValue` key (\${parameters.nameValue}). The `nameValue` key indicates that the value may have been generated from the `name` attribute rather than explicitly defined in the `value` attribute.
+While most attributes are exposed to the underlying templates as the same key as the attribute (`${parameters.label}`), 
+the `value` attribute is not. Instead, it can be accessed via the `nameValue` key (`${parameters.nameValue}`).
+The `nameValue` key indicates that the value may have been generated from the `name` attribute rather than explicitly
+defined in the `value` attribute.
 
-__ID Name Assignment__
+## ID Name Assignment
 
 All form tags automatically assign an ID to the control, but the ID can be overridden if needed.
 
@@ -388,111 +368,83 @@
 |-----|------------------------------------------------------------------|
 |Controls|The default ID is the form's name concatenated with the tag name. For example, "updateAddress_postalCode".|
 
-__Form labelposition propagation__
+## Form labelposition propagation
 
-When `labelposition` attribute was defined for `<s:form>` tag it will be propagated to all form elements, but if form element defines its own `labelposition` it will take precedence over `<s:form>`'s attribute. Since 2.3.17.
+When `labelposition` attribute was defined for `<s:form>` tag it will be propagated to all form elements, but if form 
+element defines its own `labelposition` it will take precedence over `<s:form>`'s attribute. Since 2.3.17.
 
-__Required Attribute__
+## Required Attribute
 
-The `required` attribute on many UI tags defaults to true only if you have client-side validation enabled, and a validator is associated with that particular field.
+The `required` attribute on many UI tags defaults to true only if you have client-side validation enabled,
+and a validator is associated with that particular field.
 
-__Tooltip__
+## Tooltip
 
+> **NOTE**: tooltipConfig is deprecated, use individual tooltip configuration attributes instead
 
+Every Form UI component (in xhtml / css_xhtml or any other that extends them) can have tooltips assigned to them.
+The Form component's tooltip related attribute, once defined, will be applied to all form UI components that are created 
+under it unless explicitly overridden by having the Form UI component itself defined with their own tooltip attribute.
 
-{% comment %}start snippet id=tooltipdescription|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-<p> <p>
- <b>tooltipConfig is deprecated, use individual tooltip configuration attributes instead </b>
- </p>
+In Example 1, the textfield will inherit the tooltipDelay and tooltipIconPath attribute from its containing form. 
+In other words, although it doesn't define a tooltipIconPath attribute, it will have that attribute inherited from its
+containing form.
 
- <p>
- Every Form UI component (in xhtml / css_xhtml or any other that extends them) can
- have tooltips assigned to them. The Form component's tooltip related attribute, once
- defined, will be applied to all form UI components that are created under it unless
- explicitly overridden by having the Form UI component itself defined with their own tooltip attribute.
- </p>
+In Example 2, the  textfield will inherit both the tooltipDelay and tooltipIconPath attribute from its containing form,
+but the tooltipDelay attribute is overridden at the textfield itself. Hence, the textfield actually will have its 
+tooltipIcon defined as /myImages/myIcon.gif, inherited from its containing form, and tooltipDelay defined as 5000.
 
- <p>
- In Example 1, the textfield will inherit the tooltipDelay and tooltipIconPath attribute from
- its containing form. In other words, although it doesn't define a tooltipIconPath
- attribute, it will have that attribute inherited from its containing form.
- </p>
+Example 3, 4 and 5 show different ways of setting the tooltip configuration attribute.
+- Example 3: Set tooltip config through the body of the param tag
+- Example 4: Set tooltip config through the value attribute of the param tag
+- Example 5: Set tooltip config through the tooltip attributes of the component tag
 
- <p>
- In Example 2, the  textfield will inherit both the tooltipDelay and
- tooltipIconPath attribute from its containing form, but the tooltipDelay
- attribute is overridden at the textfield itself. Hence, the textfield actually will
- have its tooltipIcon defined as /myImages/myIcon.gif, inherited from its containing form, and
- tooltipDelay defined as 5000.
- </p>
+```jsp
+<!-- Example 1: -->
+<s:form
+         tooltipDelay="500"
+         tooltipIconPath="/myImages/myIcon.gif" .... >
+  ....
+    <s:textfield label="Customer Name" tooltip="Enter the customer name" .... />
+  ....
+</s:form>
 
- <p>
- Example 3, 4 and 5 show different ways of setting the tooltip configuration attribute.<br>
- <b>Example 3:</b> Set tooltip config through the body of the param tag<br>
- <b>Example 4:</b> Set tooltip config through the value attribute of the param tag<br>
- <b>Example 5:</b> Set tooltip config through the tooltip attributes of the component tag<br>
- </p>
+<!-- Example 2: -->
+<s:form
+         tooltipDelay="500"
+         tooltipIconPath="/myImages/myIcon.gif" .... >
+  ....
+    <s:textfield label="Address"
+         tooltip="Enter your address"
+         tooltipDelay="5000" />
+  ....
+</s:form>
 
-</p>
-{% comment %}end snippet id=tooltipdescription|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
+<-- Example 3: -->
+<s:textfield
+       label="Customer Name"
+       tooltip="One of our customer Details">
+       <s:param name="tooltipDelay">
+            500
+       </s:param>
+       <s:param name="tooltipIconPath">
+            /myImages/myIcon.gif
+       </s:param>
+</s:textfield>
 
+<-- Example 4: -->
+<s:textfield
+         label="Customer Address"
+         tooltip="Enter The Customer Address" >
+         <s:param
+             name="tooltipDelay"
+             value="500" />
+</s:textfield>
 
-{% comment %}start snippet id=tooltipexample|lang=xml|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
-
-```xml
-
- <!-- Example 1: -->
- <s:form
-          tooltipDelay="500"
-          tooltipIconPath="/myImages/myIcon.gif" .... >
-   ....
-     <s:textfield label="Customer Name" tooltip="Enter the customer name" .... />
-   ....
- </s:form>
-
- <!-- Example 2: -->
- <s:form
-          tooltipDelay="500"
-          tooltipIconPath="/myImages/myIcon.gif" .... >
-   ....
-     <s:textfield label="Address"
-          tooltip="Enter your address"
-          tooltipDelay="5000" />
-   ....
- </s:form>
-
-
- <-- Example 3: -->
- <s:textfield
-        label="Customer Name"
-        tooltip="One of our customer Details">
-        <s:param name="tooltipDelay">
-             500
-        </s:param>
-        <s:param name="tooltipIconPath">
-             /myImages/myIcon.gif
-        </s:param>
- </s:textfield>
-
-
- <-- Example 4: -->
- <s:textfield
-          label="Customer Address"
-          tooltip="Enter The Customer Address" >
-          <s:param
-              name="tooltipDelay"
-              value="500" />
- </s:textfield>
-
-
- <-- Example 5: -->
- <s:textfield
-          label="Customer Telephone Number"
-          tooltip="Enter customer Telephone Number"
-          tooltipDelay="500"
-          tooltipIconPath="/myImages/myIcon.gif" />
-
-
+<-- Example 5: -->
+<s:textfield
+         label="Customer Telephone Number"
+         tooltip="Enter customer Telephone Number"
+         tooltipDelay="500"
+         tooltipIconPath="/myImages/myIcon.gif" />
 ```
-
-{% comment %}end snippet id=tooltipexample|lang=xml|javadoc=true|url=org.apache.struts2.components.UIBean {% endcomment %}
diff --git a/source/tag-developers/freemarker-tags.md b/source/tag-developers/freemarker-tags.md
index 14bdbc9..d556fcc 100644
--- a/source/tag-developers/freemarker-tags.md
+++ b/source/tag-developers/freemarker-tags.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/freemarker.md b/source/tag-developers/freemarker.md
index abd17b7..96968b1 100644
--- a/source/tag-developers/freemarker.md
+++ b/source/tag-developers/freemarker.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/generator-tag.md b/source/tag-developers/generator-tag.md
index 1ee3595..1f14bd7 100644
--- a/source/tag-developers/generator-tag.md
+++ b/source/tag-developers/generator-tag.md
@@ -1,219 +1,96 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: generator tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # generator
 
-__Description__
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
+## Description
 
+Generate an iterator based on the val attribute supplied.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.views.jsp.iterator.IteratorGeneratorTag {% endcomment %}
-<p> <b>NOTE: JSP-TAG</b>
+> NOTE: The generated iterator will **ALWAYS** be pushed into the top of the stack, and poped at the end of the tag.
 
- <p>Generate an iterator based on the val attribute supplied.</P>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/generator-description.html %}
 
- <b>NOTE:</b> The generated iterator will <b>ALWAYS</b> be pushed into the top of the stack, and poped
- at the end of the tag.
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.views.jsp.iterator.IteratorGeneratorTag {% endcomment %}
+## Attributes
 
-__Parameters__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/generator-attributes.html %}
 
+## Examples
 
+**Example 1**: generate a simple iterator
 
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/generator.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">converter</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">org.apache.struts2.util.IteratorGenerator.Converter</td>
-
-					<td align="left" valign="top">The converter to convert the String entry parsed from <i>val</i> into an object</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">count</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">The max number entries to be in the iterator</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">separator</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The separator to be used in separating the <i>val</i> into entries of the iterator</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">val</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The source to be parsed into an iterator</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to store the resultant iterator into page context, if such name is supplied</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/generator.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.IteratorGeneratorTag {% endcomment %}
-
-```xml
- Example One:
- <pre>
- Generate a simple iterator
- <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
-  <s:iterator>
-      <s:property /><br/>
-  </s:iterator>
- </s:generator>
- </pre>
- This generates an iterator and print it out using the iterator tag.
-
- Example Two:
- <pre>
- Generate an iterator with count attribute
- <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3">
-  <s:iterator>
-      <s:property /><br/>
-  </s:iterator>
- </s:generator>
- </pre>
- This generates an iterator, but only 3 entries will be available in the iterator
- generated, namely aaa, bbb and ccc respectively because count attribute is set to 3
-
- Example Three:
- <pre>
- Generate an iterator with var attribute
- <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," var="myAtt" />
- <%
-  Iterator i = (Iterator) pageContext.getAttribute("myAtt");
-  while(i.hasNext()) {
-      String s = (String) i.next(); %>
-      <%=s%> <br/>
- <%    }
- %>
- </pre>
- This generates an iterator and put it in the PageContext under the key as specified
- by the var attribute.
-
-
- Example Four:
- <pre>
- Generate an iterator with comparator attribute
- <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" converter="%{myConverter}">
-  <s:iterator>
-      <s:property /><br/>
-  </s:iterator>
- </s:generator>
-
-
- public class GeneratorTagAction extends ActionSupport {
-
-   ....
-
-   public Converter getMyConverter() {
-      return new Converter() {
-          public Object convert(String value) throws Exception {
-              return "converter-"+value;
-          }
-      };
-   }
-
-   ...
-
- }
- </pre>
- This will generate an iterator with each entries decided by the converter supplied. With
- this converter, it simply add "converter-" to each entries.
-
+```jsp
+<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
+ <s:iterator>
+     <s:property /><br/>
+ </s:iterator>
+</s:generator>
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.IteratorGeneratorTag {% endcomment %}
+This generates an iterator and print it out using the iterator tag.
+
+**Example 2**: generate an iterator with count attribute
+
+```jsp
+<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3">
+ <s:iterator>
+     <s:property /><br/>
+ </s:iterator>
+</s:generator>
+```
+
+This generates an iterator, but only 3 entries will be available in the iterator generated, namely aaa, bbb and ccc 
+respectively because count attribute is set to 3.
+
+**Example 3**: generate an iterator with var attribute
+
+```jsp
+<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," var="myAtt" />
+<%
+ Iterator i = (Iterator) pageContext.getAttribute("myAtt");
+ while(i.hasNext()) {
+     String s = (String) i.next(); %>
+     <%=s%> <br/>
+<%    }
+%>
+```
+
+This generates an iterator and put it in the PageContext under the key as specified by the var attribute.
+
+**Example 4**: generate an iterator with comparator attribute
+
+```jsp
+<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" converter="%{myConverter}">
+ <s:iterator>
+     <s:property /><br/>
+ </s:iterator>
+</s:generator>
+```
+
+```java
+public class GeneratorTagAction extends ActionSupport {
+
+  ....
+
+  public Converter getMyConverter() {
+     return new Converter() {
+         public Object convert(String value) throws Exception {
+             return "converter-"+value;
+         }
+     };
+  }
+
+  ...
+
+}
+```
+
+This will generate an iterator with each entries decided by the converter supplied. With this converter, it simply 
+add "converter-" to each entries.
diff --git a/source/tag-developers/generic-tags.md b/source/tag-developers/generic-tags.md
index 08807ea..542a6c4 100644
--- a/source/tag-developers/generic-tags.md
+++ b/source/tag-developers/generic-tags.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/head-tag.md b/source/tag-developers/head-tag.md
index 0468e6c..73285b4 100644
--- a/source/tag-developers/head-tag.md
+++ b/source/tag-developers/head-tag.md
@@ -1,765 +1,30 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: head tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # head
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Renders parts of the HEAD section for an HTML file. Encoding can be set using this tag.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/head-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/head-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Head {% endcomment %}
-<p>
- Renders parts of the HEAD section for an HTML file. Encoding can be set using this tag.
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Head {% endcomment %}
+## Examples
 
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/head.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/head.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example1|lang=xml|javadoc=true|url=org.apache.struts2.components.Head {% endcomment %}
-
-```xml
+```jsp
  <head>
    <title>My page</title>
    <s:head/>
  </head>
-
 ```
-
-{% comment %}end snippet id=example1|lang=xml|javadoc=true|url=org.apache.struts2.components.Head {% endcomment %}
diff --git a/source/tag-developers/hidden-tag.md b/source/tag-developers/hidden-tag.md
index b525339..cd99ad3 100644
--- a/source/tag-developers/hidden-tag.md
+++ b/source/tag-developers/hidden-tag.md
@@ -1,769 +1,46 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: hidden tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # hidden
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Renders an HTML input element of type hidden, populated by the specified property from the ValueStack.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/hidden-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/hidden-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Hidden {% endcomment %}
-<p> Renders an HTML input element of type hidden, populated by the specified property from the ValueStack.
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Hidden {% endcomment %}
+## Examples
 
-__Parameters__
+**Example 1**
 
+```jsp
+<s:hidden name="foo" />
+```
+Example One Resulting HTML (if `foo` evaluates to `bar`):
 
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/hidden.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/hidden.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Hidden {% endcomment %}
-
-```xml
- <-- example one -->
- <s:hidden name="foo" />
- <-- example two -->
- <s:hidden name="foo" value="%{bar}" />
-
- Example One Resulting HTML (if foo evaluates to bar):
- <input type="hidden" name="foo" value="bar" />
- Example Two Resulting HTML (if getBar method of the action returns 'bar')
- <input type="hidden" name="foo" value="bar" />
-
+```html 
+<input type="hidden" name="foo" value="bar" />
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Hidden {% endcomment %}
+**Example 2**
+
+```jsp
+<s:hidden name="foo" value="%{bar}" />
+```
+ 
+Example Two Resulting HTML (if `getBar` method of the action returns `bar`)
+
+```jsp
+<input type="hidden" name="foo" value="bar" />
+```
diff --git a/source/tag-developers/i18n-tag.md b/source/tag-developers/i18n-tag.md
index 9298a1a..6a48d94 100644
--- a/source/tag-developers/i18n-tag.md
+++ b/source/tag-developers/i18n-tag.md
@@ -1,97 +1,30 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: i18n tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # i18n
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Gets a resource bundle and place it on the value stack. This allows the text tag to access messages from any bundle, 
+and not just the bundle associated with the current action.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/i18n-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/i18n-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.I18n {% endcomment %}
-<p>
- Gets a resource bundle and place it on the value stack. This allows
- the text tag to access messages from any bundle, and not just the bundle
- associated with the current action.
+## Examples
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.I18n {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/i18n.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name of resource bundle to use (eg foo/bar/customBundle)</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/i18n.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.I18n {% endcomment %}
-
-```xml
-
- <s:i18n name="myCustomBundle">
-    The i18n value for key aaa.bbb.ccc in myCustomBundle is <s:property value="text('aaa.bbb.ccc')" />
- </s:i18n>
-
-
+```jsp
+<s:i18n name="myCustomBundle">
+  The i18n value for key aaa.bbb.ccc in myCustomBundle is <s:property value="text('aaa.bbb.ccc')" />
+</s:i18n>
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.I18n {% endcomment %}
diff --git a/source/tag-developers/if-tag.md b/source/tag-developers/if-tag.md
index 863d307..587b24f 100644
--- a/source/tag-developers/if-tag.md
+++ b/source/tag-developers/if-tag.md
@@ -1,92 +1,36 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: if tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # if
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Perform basic condition flow. `if` tag could be used by itself or can be followed by zero or more `elseif` tags 
+followed by zero or one `else` tag.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/if-description.html %}
 
-Perform basic condition flow. 'If' tag could be used by itself or can be followed by zero or more 'Else if' Tags followed by zero or one 'Else' Tag.
+## Attributes
 
-__Parameters__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/if-attributes.html %}
 
+## Examples
 
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/if.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">test</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Expression to determine if body of tag is to be displayed</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/if.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=struts2/core/src/main/java/org/apache/struts2/components/If.java {% endcomment %}
-
-```xml
-  <s:if test="%{false}">
-      <div>Will Not Be Executed</div>
-  </s:if>
-  <s:elseif test="%{true}">
-      <div>Will Be Executed</div>
-  </s:elseif>
-  <s:else>
-      <div>Will Not Be Executed</div>
-  </s:else>
-
+```jsp
+<s:if test="%{false}">
+    <div>Will Not Be Executed</div>
+</s:if>
+<s:elseif test="%{true}">
+    <div>Will Be Executed</div>
+</s:elseif>
+<s:else>
+    <div>Will Not Be Executed</div>
+</s:else>
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=struts2/core/src/main/java/org/apache/struts2/components/If.java {% endcomment %}
diff --git a/source/tag-developers/include-tag.md b/source/tag-developers/include-tag.md
index 1587c58..2ef8bc4 100644
--- a/source/tag-developers/include-tag.md
+++ b/source/tag-developers/include-tag.md
@@ -1,109 +1,60 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: include tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # include
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-__Description__
+## Description
 
-Include a servlet's output (result of servlet or a JSP page).
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/include-description.html %}
 
-**Note:** Any additional params supplied to the included page are **not**
- accessible within the rendered page through the \<s:property...\> tag
- since no valuestack will be created. You can, however, access them in a
- servlet via the HttpServletRequest object or from a JSP page via
- a scriptlet.
+> **Note:** Any additional params supplied to the included page are **not** accessible within the rendered page 
+> through the `<s:property.../>` tag since no ValueStack will be created. You can, however, access them in a servlet
+> via the HttpServletRequest object or from a JSP page via a scriptlet.
 
 **How To access parameters**
 
-Parameters are passed as request parameters, so use the `${param.ParamName}` notation to access them. Do not use the **property** tag to access parameters in included files.
+Parameters are passed as request parameters, so use the `${param.ParamName}` notation to access them. Do not use 
+the **property** tag to access parameters in included files.
 
-__Parameters__
+## Attributes
 
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/include.html {% endcomment %}
-<table width="100%">
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/include-attributes.html %}
 
-			<tr>
+## Example
 
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
+**Example 1**
 
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The jsp/servlet output to include</td>
-
-				</tr>
-
-</table>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/include.html {% endcomment %}
-
-__Example__
-
-{% comment %}start snippet id=example|lang=java|javadoc=true|url=org.apache.struts2.components.Include {% endcomment %}
-
-```xml
- <!-- One: -->
- <s:include value="myJsp.jsp" />
-
- <!-- Two: -->
- <s:include value="myJsp.jsp">
-    <s:param name="param1" value="value2" />
-    <s:param name="param2" value="value2" />
- </s:include>
-
- <!-- Three: -->
- <s:include value="myJsp.jsp">
-    <s:param name="param1">value1</s:param>
-    <s:param name="param2">value2</s:param>
- </s:include>
+```jsp
+<s:include value="myJsp.jsp" />
 ```
 
-{% comment %}end snippet id=example|lang=java|javadoc=true|url=org.apache.struts2.components.Include {% endcomment %}
+do an include myJsp.jsp page
+ 
+**Example 2**
 
-
-{% comment %}start snippet id=exampledescription|lang=none|javadoc=true|url=org.apache.struts2.components.Include {% endcomment %}
-
-```none
- Example one - do an include myJsp.jsp page
- Example two - do an include to myJsp.jsp page with parameters param1=value1 and param2=value2
- Example three - do an include to myJsp.jsp page with parameters param1=value1 and param2=value2
-
+```jsp
+<s:include value="myJsp.jsp">
+   <s:param name="param1" value="value2" />
+   <s:param name="param2" value="value2" />
+</s:include>
 ```
 
-{% comment %}end snippet id=exampledescription|lang=none|javadoc=true|url=org.apache.struts2.components.Include {% endcomment %}
+do an include to myJsp.jsp page with parameters `param1=value1` and `param2=value2`
+
+**Example 3**
+
+```jsp
+<s:include value="myJsp.jsp">
+   <s:param name="param1">value1</s:param>
+   <s:param name="param2">value2</s:param>
+</s:include>
+```
+
+do an include to myJsp.jsp page with parameters `param1=value1` and `param2=value2`
diff --git a/source/tag-developers/inputtransferselect-tag.md b/source/tag-developers/inputtransferselect-tag.md
index 5c739a5..1924bb5 100644
--- a/source/tag-developers/inputtransferselect-tag.md
+++ b/source/tag-developers/inputtransferselect-tag.md
@@ -1,1146 +1,37 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: inputtransferselect tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # inputtransferselect
 
-__Description__
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
+## Description
 
+Create a input transfer select component which is basically an text input and `<select ...>` tag with buttons 
+in the middle of them allowing text to be added to the transfer select. Will auto-select all its elements upon its
+containing form submission.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.InputTransferSelect {% endcomment %}
-<p> <p>
- Create a input transfer select component which is basically an text input
- and  <select ...> tag with buttons in the middle of them allowing text
- to be added to the transfer select. Will auto-select all its
- elements upon its containing form submission.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.InputTransferSelect {% endcomment %}
+> **NOTE**: The id and doubleId need not be supplied as they will generated provided that the inputtransferselect 
+> tag is being used in a form tag. The generated id and doubleId will be `<form_id>_<inputtransferselect_doubleName>` 
+> and `<form_id>_<inputtransferselect_doubleName>` respectively.
 
-{% comment %}start snippet id=notice|javadoc=true|url=org.apache.struts2.components.InputTransferSelect {% endcomment %}
-<p> <p>
- NOTE: The id and doubleId need not be supplied as they will generated provided
- that the inputtransferselect tag is being used in a form tag. The generated id
- and doubleId will be <form_id>_<inputtransferselect_doubleName> and
- <form_id>_<inputtransferselect_doubleName> respectively.
- </p>
-</p>
-{% comment %}end snippet id=notice|javadoc=true|url=org.apache.struts2.components.InputTransferSelect {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/inputtransferselect-description.html %}
 
-__Parameters__
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/inputtransferselect-attributes.html %}
 
+## Example
 
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/inputtransferselect.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the label used for the add button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowRemoveAll</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Determine whether the remove all button will display</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowUpDown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Determine whether items in the list can be reordered</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">buttonCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the css class used for rendering buttons</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">buttonCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the css style used for rendering buttons</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">downLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the label used for the down button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the header key of the select box</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the header value of the select box</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">leftTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the left hand title</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listLabelKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field content from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValueKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value label from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">multiple</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Determine whether or not multiple entries are shown</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">removeAllLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the label used for the remove all button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">removeLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the label used for the remove button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">rightTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the right hand title</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the size of the select box</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">upLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the label used for the up button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/inputtransferselect.html {% endcomment %}
-
-__Example__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.InputTransferSelect {% endcomment %}
-
-```xml
-
- <-- minimum configuration -->
- <s:inputtransferselect
-      label="Favourite Cartoons Characters"
-      name="cartoons"
-      list="{'Popeye', 'He-Man', 'Spiderman'}"
-  />
-
-
+```jsp
+<s:inputtransferselect
+     label="Favourite Cartoons Characters"
+     name="cartoons"
+     list="{'Popeye', 'He-Man', 'Spiderman'}"
+ />
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.InputTransferSelect {% endcomment %}
diff --git a/source/tag-developers/iterator-tag.md b/source/tag-developers/iterator-tag.md
index 63a5fb4..4095234 100644
--- a/source/tag-developers/iterator-tag.md
+++ b/source/tag-developers/iterator-tag.md
@@ -1,370 +1,142 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: iterator tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # iterator
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+> **NOTE**: The `id` attribute is deprecated in Struts 2.1.x, and has been replaced by the `var` attribute.
+> The `begin`, `end` and `step` attributes are only available from 2.1.7+
 
-| 
+## Description
 
+Iterator will iterate over a value. An iterable value can be any of: `java.util.Collection`, `java.util.Iterator`, 
+`java.util.Enumeration`, `java.util.Map`, or an array.
 
-The id attribute is deprecated in Struts 2.1.x, and has been replaced by the var attribute.
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/iterator-description.html %}
 
-| 
+## Attributes
 
-The begin, end and step attributes are only available from 2.1.7 on
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/iterator-attributes.html %}
 
-> 
+## Examples
 
-__Description__
+The following example retrieves the value of the getDays() method of the current object on the value stack and uses 
+it to iterate over. The `<s:property/>` tag prints out the current value of the iterator.
 
-
-
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-<p>
- <p>Iterator will iterate over a value. An iterable value can be any of: java.util.Collection, java.util.Iterator,
- java.util.Enumeration, java.util.Map, or an array.</p>
-
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/iterator.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">begin</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">0</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">if specified the iteration will start on that index</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">end</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Size of the 'values' List or array, or 0 if 'step' is negative</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">if specified the iteration will end on that index(inclusive)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">status</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If specified, an instanceof IteratorStatus will be pushed into stack upon each iteration</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">step</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">1</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">if specified the iteration index will be increased by this value on each iteration. It can be a negative value, in which case 'begin' must be greater than 'end'</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">the iteratable source to iterate over, else an the object itself will be put into a newly created List</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name used to reference the value pushed into the Value Stack</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/iterator.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example1description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-<p>
- <p>The following example retrieves the value of the getDays() method of the current object on the value stack and
- uses it to iterate over. The <s:property/> tag prints out the current value of the iterator.</p>
-
-</p>
-{% comment %}end snippet id=example1description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-
-{% comment %}start snippet id=example1code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-```xml
- <s:iterator value="days">
-   <p>day is: <s:property/></p>
- </s:iterator>
-
+```jsp
+<s:iterator value="days">
+  <p>day is: <s:property/></p>
+</s:iterator>
 ```
 
-{% comment %}end snippet id=example1code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
+The following example uses a {@link Bean} tag and places it into the ActionContext. The iterator tag will retrieve that 
+object from the `ActionContext` and then calls its `getDays()` method as above. The status attribute is also used 
+to create an `IteratorStatus` object, which in this example, its `odd()` method is used to alternate row colours:
 
+```jsp
+<s:bean name="org.apache.struts2.example.IteratorExample" var="it">
+  <s:param name="day" value="'foo'"/>
+  <s:param name="day" value="'bar'"/>
+</s:bean>
 
-{% comment %}start snippet id=example2description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-<p>
- <p>The following example uses a {@link Bean} tag and places it into the ActionContext. The iterator tag will retrieve
- that object from the ActionContext and then calls its getDays() method as above. The status attribute is also used to
- create an {@link IteratorStatus} object, which in this example, its odd() method is used to alternate row
- colours:</p>
+<table border="0" cellspacing="0" cellpadding="1">
+<tr>
+  <th>Days of the week</th>
+</tr>
 
-</p>
-{% comment %}end snippet id=example2description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-
-{% comment %}start snippet id=example2code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-```xml
-
- <s:bean name="org.apache.struts2.example.IteratorExample" var="it">
-   <s:param name="day" value="'foo'"/>
-   <s:param name="day" value="'bar'"/>
- </s:bean>
-
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
-   <th>Days of the week</th>
- </tr>
-
- <s:iterator value="#it.days" status="rowstatus">
-   <tr>
-     <s:if test="#rowstatus.odd == true">
-       <td style="background: grey"><s:property/></td>
-     </s:if>
-     <s:else>
-       <td><s:property/></td>
-     </s:else>
-   </tr>
- </s:iterator>
- </table>
-
-
+<s:iterator value="#it.days" status="rowstatus">
+  <tr>
+    <s:if test="#rowstatus.odd == true">
+      <td style="background: grey"><s:property/></td>
+    </s:if>
+    <s:else>
+      <td><s:property/></td>
+    </s:else>
+  </tr>
+</s:iterator>
+</table>
 ```
 
-{% comment %}end snippet id=example2code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
+The next example will further demonstrate the use of the status attribute, using a DAO obtained from the action class 
+through OGNL, iterating over groups and their users (in a security context). The last() method indicates if the current 
+object is the last available in the iteration, and if not, we need to separate the users using a comma:
 
-
-{% comment %}start snippet id=example3description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-<p>
- <p> The next example will further demonstrate the use of the status attribute, using a DAO obtained from the action
- class through OGNL, iterating over groups and their users (in a security context). The last() method indicates if the
- current object is the last available in the iteration, and if not, we need to separate the users using a comma: </p>
-
-</p>
-{% comment %}end snippet id=example3description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-
-{% comment %}start snippet id=example3code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-```xml
-
-  <s:iterator value="groupDao.groups" status="groupStatus">
-      <tr class="<s:if test="#groupStatus.odd == true ">odd</s:if><s:else>even</s:else>">
-          <td><s:property value="name" /></td>
-          <td><s:property value="description" /></td>
-          <td>
-              <s:iterator value="users" status="userStatus">
-                  <s:property value="fullName" /><s:if test="!#userStatus.last">,</s:if>
-              </s:iterator>
-          </td>
-      </tr>
-  </s:iterator>
-
-
+```jsp
+<s:iterator value="groupDao.groups" status="groupStatus">
+    <tr class="<s:if test="#groupStatus.odd == true ">odd</s:if><s:else>even</s:else>">
+        <td><s:property value="name" /></td>
+        <td><s:property value="description" /></td>
+        <td>
+            <s:iterator value="users" status="userStatus">
+                <s:property value="fullName" /><s:if test="!#userStatus.last">,</s:if>
+            </s:iterator>
+        </td>
+    </tr>
+</s:iterator>
 ```
 
-{% comment %}end snippet id=example3code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
+The next example iterates over a an action collection and passes every iterator value to another action. The trick here 
+lies in the use of the `[0]` operator. It takes the current iterator value and passes it on to the edit action. 
+Using the `[0]` operator has the same effect as using `<s:property />`. (The latter, however, does not work from inside 
+the `param` tag).
 
-
-{% comment %}start snippet id=example4description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-<p>
- <p> The next example iterates over a an action collection and passes every iterator value to another action. The
- trick here lies in the use of the '[0]' operator. It takes the current iterator value and passes it on to the edit
- action. Using the '[0]' operator has the same effect as using <s:property />. (The latter, however, does not
- work from inside the param tag). </p>
-
-</p>
-{% comment %}end snippet id=example4description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-
-{% comment %}start snippet id=example4code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-```xml
-
-      <s:action name="entries" var="entries"/>
-      <s:iterator value="#entries.entries" >
-          <s:property value="name" />
-          <s:property />
-          <s:push value="...">
-              <s:action name="edit" var="edit" >
-                  <s:param name="entry" value="[0]" />
-              </s:action>
-          </push>
-      </s:iterator>
-
-
+```jsp
+<s:action name="entries" var="entries"/>
+<s:iterator value="#entries.entries" >
+    <s:property value="name" />
+    <s:property />
+    <s:push value="...">
+        <s:action name="edit" var="edit" >
+            <s:param name="entry" value="[0]" />
+        </s:action>
+    </push>
+</s:iterator>
 ```
 
-{% comment %}end snippet id=example4code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
+A loop that iterates 5 times
 
-
-{% comment %}start snippet id=example5description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-<p>
- <p>A loop that iterates 5 times</p>
-
-</p>
-{% comment %}end snippet id=example5description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-
-{% comment %}start snippet id=example5code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-```xml
-
- <s:iterator var="counter" begin="1" end="5" >
-    <!-- current iteration value (1, ... 5) -->
-    <s:property value="top" />
- </s:iterator>
-
-
+```jsp
+<s:iterator var="counter" begin="1" end="5" >
+   <!-- current iteration value (1, ... 5) -->
+   <s:property value="top" />
+</s:iterator>
 ```
 
-{% comment %}end snippet id=example5code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
+Another way to create a simple loop, similar to JSTL's `<c:forEach begin="..." end="..." ...>` is to use some  OGNL 
+magic, which provides some under-the-covers magic to make 0-n loops trivial. This example also loops five times.
 
-
-{% comment %}start snippet id=example6description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-<p>
- <p>Another way to create a simple loop, similar to JSTL's
- <c:forEach begin="..." end="..." ...> is to use some 
- OGNL magic, which provides some under-the-covers magic to 
- make 0-n loops trivial. This example also loops five times.</p>
-
-</p>
-{% comment %}end snippet id=example6description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-
-{% comment %}start snippet id=example6code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-```xml
-
- <s:iterator status="stat" value="(5).{ #this }" >
-    <s:property value="#stat.count" /> <!-- Note that "count" is 1-based, "index" is 0-based. -->
- </s:iterator>
-
-
+```jsp
+<s:iterator status="stat" value="(5).{ #this }" >
+   <s:property value="#stat.count" /> <!-- Note that "count" is 1-based, "index" is 0-based. -->
+</s:iterator>
 ```
 
-{% comment %}end snippet id=example6code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
+A loop that iterates over a partial list
 
-
-{% comment %}start snippet id=example7description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-<p>
- <p>A loop that iterates over a partial list</p>
-
-</p>
-{% comment %}end snippet id=example7description|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-
-{% comment %}start snippet id=example7code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
-
-```xml
-
- <s:iterator value="{1,2,3,4,5}" begin="2" end="4" >
-    <!-- current iteration value (2,3,4) -->
-    <s:property value="top" />
- </s:iterator>
-
-
+```jsp
+<s:iterator value="{1,2,3,4,5}" begin="2" end="4" >
+   <!-- current iteration value (2,3,4) -->
+   <s:property value="top" />
+</s:iterator>
 ```
 
-{% comment %}end snippet id=example7code|lang=xml|javadoc=true|url=org.apache.struts2.components.IteratorComponent {% endcomment %}
+Another example when we can access a variable out of the current loop context and where name clashes with the current
+
+```jsp
+<s:select name="location" size="1" list="locations" listKey="key"
+  listValue="value" emptyOption="false" />
+
+<s:iterator var="item" value="items" status="rowstatus">
+    <s:url var="myUrl" action="itemDelete">
+        <s:param name="id" value="#item.id" />
+        <%-- Outer loop variable name [1]. as clash with item.location --%>
+        <s:param name="location" value="[1].location" />
+    </s:url>
+</s:iterator>
+```
diff --git a/source/tag-developers/jsp-tags.md b/source/tag-developers/jsp-tags.md
index cddabed..fce055b 100644
--- a/source/tag-developers/jsp-tags.md
+++ b/source/tag-developers/jsp-tags.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/jsp.md b/source/tag-developers/jsp.md
index 1eec5e0..0b1f586 100644
--- a/source/tag-developers/jsp.md
+++ b/source/tag-developers/jsp.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/label-tag.md b/source/tag-developers/label-tag.md
index a125430..39f6844 100644
--- a/source/tag-developers/label-tag.md
+++ b/source/tag-developers/label-tag.md
@@ -1,790 +1,32 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: label tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # label
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Renders an HTML LABEL that will allow you to output label:name combination that has the same format treatment 
+as the rest of your UI controls.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/label-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/label-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Label {% endcomment %}
-<p> <p>Renders an HTML LABEL that will allow you to output label:name combination that has the same format treatment as
- the rest of your UI controls.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Label {% endcomment %}
+## Examples
 
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/label.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">for</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> HTML for attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/label.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Label {% endcomment %}
-
-```xml
- <s:label key="userName" />
-
+```jsp
+<s:label key="userName" />
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Label {% endcomment %}
-
-
-{% comment %}start snippet id=exdescription|lang=none|javadoc=true|url=org.apache.struts2.components.Label {% endcomment %}
-
-```none
- <p>In this example, a label is rendered. The label is retrieved from a ResourceBundle via the key attribute
- giving you an output of 'User Name: Ford.Prefect'. Assuming that i18n message userName corresponds
- to 'User Name' and the action's getUserName() method returns 'Ford.Prefect'</p>
-
-```
-
-{% comment %}end snippet id=exdescription|lang=none|javadoc=true|url=org.apache.struts2.components.Label {% endcomment %}
+In this example, a label is rendered. The label is retrieved from a ResourceBundle via the key attribute giving 
+you an output of 'User Name: Ford.Prefect'. Assuming that i18n message userName corresponds to _User Name_ 
+and the action's `getUserName()` method returns _Ford.Prefect_.
diff --git a/source/tag-developers/merge-tag.md b/source/tag-developers/merge-tag.md
index 9ade936..52fced7 100644
--- a/source/tag-developers/merge-tag.md
+++ b/source/tag-developers/merge-tag.md
@@ -1,164 +1,92 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: merge tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # merge
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Component for MergeIteratorTag, which job is to merge iterators and successive call to the merged iterator will cause 
+each merge iterator to have a chance to expose its element, subsequently next call will allow the next iterator to expose
+its element. Once the last iterator is done exposing its element, the first iterator is allowed to do so again (unless 
+it is exhausted of entries).
 
-__Description__
+Internally the task are delegated to `MergeIteratorFilter`.
 
+Example if there are 3 lists being merged, each list have 3 entries, the following will be the logic.
 
+1. Display first element of the first list
+2. Display first element of the second list
+3. Display first element of the third list
+4. Display second element of the first list<
+5. Display second element of the second list
+6. Display second element of the third list
+7. Display third element of the first list<
+8. Display third element of the second list
+9. Display third element of the third list
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.MergeIterator {% endcomment %}
-<p> <p>Component for MergeIteratorTag, which job is to merge iterators and successive
- call to the merged iterator will cause each merge iterator to have a chance to
- expose its element, subsequently next call will allow the next iterator to expose
- its element. Once the last iterator is done exposing its element, the first iterator
- is allowed to do so again (unless it is exhausted of entries).</P>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/merge-description.html %}
 
- <p>Internally the task are delegated to MergeIteratorFilter</p>
+## Attributes
 
- <p>Example if there are 3 lists being merged, each list have 3 entries, the following will
- be the logic.</P>
- <ol>
-      <li>Display first element of the first list</li>
-      <li>Display first element of the second list</li>
-      <li>Display first element of the third list</li>
-      <li>Display second element of the first list</li>
-      <li>Display second element of the second list</li>
-      <li>Display second element of the third list</li>
-      <li>Display third element of the first list</li>
-      <li>Display thrid element of the second list</li>
-      <li>Display third element of the thrid list</li>
- </ol>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.MergeIterator {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/merge-attributes.html %}
 
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/merge.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name where the resultant merged iterator will be stored in the stack's context</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/merge.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=javacode|lang=java|javadoc=true|url=org.apache.struts2.components.MergeIterator {% endcomment %}
+## Examples
 
 ```java
- public class MergeIteratorTagAction extends ActionSupport {
+public class MergeIteratorTagAction extends ActionSupport {
 
-  private List myList1;
-  private List myList2;
-  private List myList3;
-
-  public List getMyList1() {
-      return myList1;
-  }
-
-  public List getMyList2() {
-      return myList2;
-  }
-
-  public List getMyList3() {
-      return myList3;
-  }
-
-
-  public String execute() throws Exception {
-
-      myList1 = new ArrayList();
-      myList1.add("1");
-      myList1.add("2");
-      myList1.add("3");
-
-      myList2 = new ArrayList();
-      myList2.add("a");
-      myList2.add("b");
-      myList2.add("c");
-
-      myList3 = new ArrayList();
-      myList3.add("A");
-      myList3.add("B");
-      myList3.add("C");
-
-      return "done";
-  }
- }
-
+    private List myList1;
+    private List myList2;
+    private List myList3;
+    
+    public List getMyList1() {
+        return myList1;
+    }
+    
+    public List getMyList2() {
+        return myList2;
+    }
+    
+    public List getMyList3() {
+        return myList3;
+    }
+    
+    
+    public String execute() throws Exception {
+        myList1 = new ArrayList();
+        myList1.add("1");
+        myList1.add("2");
+        myList1.add("3");
+    
+        myList2 = new ArrayList();
+        myList2.add("a");
+        myList2.add("b");
+        myList2.add("c");
+    
+        myList3 = new ArrayList();
+        myList3.add("A");
+        myList3.add("B");
+        myList3.add("C");
+    
+        return "done";
+    }
+}
 ```
 
-{% comment %}end snippet id=javacode|lang=java|javadoc=true|url=org.apache.struts2.components.MergeIterator {% endcomment %}
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.MergeIterator {% endcomment %}
-
-```xml
- <s:merge var="myMergedIterator1">
-      <s:param value="%{myList1}" />
-      <s:param value="%{myList2}" />
-      <s:param value="%{myList3}" />
- </s:merge>
- <s:iterator value="%{#myMergedIterator1}">
-      <s:property />
- </s:iterator>
-
+```jsp
+<s:merge var="myMergedIterator1">
+     <s:param value="%{myList1}" />
+     <s:param value="%{myList2}" />
+     <s:param value="%{myList3}" />
+</s:merge>
+<s:iterator value="%{#myMergedIterator1}">
+     <s:property />
+</s:iterator>
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.MergeIterator {% endcomment %}
diff --git a/source/tag-developers/ognl-basics.md b/source/tag-developers/ognl-basics.md
index 127baae..0afee2e 100644
--- a/source/tag-developers/ognl-basics.md
+++ b/source/tag-developers/ognl-basics.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/ognl-expression-compilation.md b/source/tag-developers/ognl-expression-compilation.md
index 474042b..868c130 100644
--- a/source/tag-developers/ognl-expression-compilation.md
+++ b/source/tag-developers/ognl-expression-compilation.md
@@ -1,9 +1,13 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # OGNL Expression Compilation
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 This document is meant as a development/integration guide for anyone wanting to use the new OGNL 2.7 features for doing 
 byte code runtime enhancements on OGNL statements.  This is _not_  meant for general user reference as it covers what 
diff --git a/source/tag-developers/ognl.md b/source/tag-developers/ognl.md
index 3a58deb..a522891 100644
--- a/source/tag-developers/ognl.md
+++ b/source/tag-developers/ognl.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
@@ -24,21 +24,21 @@
 and request contexts. These objects coexist in the ActionContext, alongside the value stack (our OGNL root).
 
 ```
-                     |
-                     |--application
-                     |
-                     |--session
-       context map---|
-                     |--value stack(root)
-                     |
-                     |--action (the current action)
-                     |
-                     |--request
-                     |
-                     |--parameters
-                     |
-                     |--attr (searches page, request, session, then application scopes)
-                     |
+context map---|
+              |--application
+              |
+              |--session
+              |
+              |--value stack(root)
+              |
+              |--action (the current action)
+              |
+              |--request
+              |
+              |--parameters
+              |
+              |--attr (searches page, request, session, then application scopes)
+              |
 ```
 
 The Action instance is always pushed onto the value stack. Because the Action is on the stack, and the stack is 
diff --git a/source/tag-developers/optgroup-tag.md b/source/tag-developers/optgroup-tag.md
index ce56621..610b322 100644
--- a/source/tag-developers/optgroup-tag.md
+++ b/source/tag-developers/optgroup-tag.md
@@ -1,173 +1,37 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: optgroup tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # optgroup
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Create a optgroup component which needs to resides within a select tag.
 
-__Description__
+This tag is to be used within a `select` tag.
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/optgroup-description.html %}
 
+## Attributes
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.OptGroup {% endcomment %}
-<p> <p>
- Create a optgroup component which needs to resides within a select tag.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.OptGroup {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/optgroup-attributes.html %}
 
-{% comment %}start snippet id=notice|javadoc=true|url=org.apache.struts2.components.OptGroup {% endcomment %}
-<p> <p>
- This component is to be used within a  Select component.
- </p>
+## Examples
 
-</p>
-{% comment %}end snippet id=notice|javadoc=true|url=org.apache.struts2.components.OptGroup {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/optgroup.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the disable attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the label attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the list attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the listKey attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the listValue attribute.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/optgroup.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.OptGroup {% endcomment %}
-
-```xml
-
- <s:select label="My Selection"
-            name="mySelection"
-            value="%{'POPEYE'}"
-            list="%{#{'SUPERMAN':'Superman', 'SPIDERMAN':'spiderman'}}">
-    <s:optgroup label="Adult"
-                 list="%{#{'SOUTH_PARK':'South Park'}}" />
-    <s:optgroup label="Japanese"
-                 list="%{#{'POKEMON':'pokemon','DIGIMON':'digimon','SAILORMOON':'Sailormoon'}}" />
- </s:select>
-
-
+```jsp
+<s:select label="My Selection"
+           name="mySelection"
+           value="%{'POPEYE'}"
+           list="%{#{'SUPERMAN':'Superman', 'SPIDERMAN':'spiderman'}}">
+   <s:optgroup label="Adult"
+                list="%{#{'SOUTH_PARK':'South Park'}}" />
+   <s:optgroup label="Japanese"
+                list="%{#{'POKEMON':'pokemon','DIGIMON':'digimon','SAILORMOON':'Sailormoon'}}" />
+</s:select>
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.OptGroup {% endcomment %}
diff --git a/source/tag-developers/optiontransferselect-tag.md b/source/tag-developers/optiontransferselect-tag.md
index 8c14ec2..858a0fb 100644
--- a/source/tag-developers/optiontransferselect-tag.md
+++ b/source/tag-developers/optiontransferselect-tag.md
@@ -1,1985 +1,67 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: optiontransferselect tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # optiontransferselect
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+> **NOTE**: that the `doublelistkey` and `doublelistvalue` attribute will default to `key` and `value` respectively 
+> only when the `doublelist` attribute is evaluated to a Map or its descendant. Other thing else, will result 
+> in `doublelistkey` and `doublelistvalue` to be null and not used.
 
-| 
+## Description
 
+Create a option transfer select component which is basically two `<select ...>` tag with buttons in the middle of them 
+allowing options in each of the `<select ...>` to be moved between themselves. Will auto-select all its elements upon 
+its containing form submission.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.DoubleListUIBean {% endcomment %}
-<p> <p>
- Note that the doublelistkey and doublelistvalue attribute will default to "key" and "value"
- respectively only when the doublelist attribute is evaluated to a Map or its descendant.
- Other thing else, will result in doublelistkey and doublelistvalue to be null and not used.
- </p>
+> **NOTE**: The `id` and `doubleId` need not be supplied as they will generated provided that the `optiontransferselect` 
+> tag is being used in a form tag. The generated `id` and `doubleId` will be `<form_id>_<optiontransferselect_name>` 
+> and `<form_id>_<optiontransferselect_doubleName>` respectively.
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.DoubleListUIBean {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/optiontransferselect-description.html %}
 
-__Description__
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/optiontransferselect-attributes.html %}
 
+## Examples
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.OptionTransferSelect {% endcomment %}
-<p> <p>
- Create a option transfer select component which is basically two &lt;select ...&gt;
- tag with buttons in the middle of them allowing options in each of the
- &lt;select ...&gt; to be moved between themselves. Will auto-select all its
- elements upon its containing form submision.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.OptionTransferSelect {% endcomment %}
+**Minimum example**
 
-
-{% comment %}start snippet id=notice|javadoc=true|url=org.apache.struts2.components.OptionTransferSelect {% endcomment %}
-<p> <p>
- NOTE: The id and doubleId need not be supplied as they will generated provided
- that the optiontransferselect tag is being used in a form tag. The generated id
- and doubleId will be &lt;form_id&gt;_&lt;optiontransferselect_nameame&gt; and
- &lt;form_id>_&lt;optiontransferselect_doubleName> respectively.
- </p>
-
-</p>
-{% comment %}end snippet id=notice|javadoc=true|url=org.apache.struts2.components.OptionTransferSelect {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/optiontransferselect.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addAllToLeftLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set Add To Left button label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addAllToLeftOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Javascript to run after Add All To Left button pressed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addAllToRightLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set Add All To Right button label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addAllToRightOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Javascript to run after Add All To Right button pressed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addToLeftLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set Add To Left button label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addToLeftOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Javascript to run after Add To Left button pressed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addToRightLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set Add To Right button label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">addToRightOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Javascript to run after Add To Right button pressed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowAddAllToLeft</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Enable Add All To Left button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowAddAllToRight</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Enable Add All To Right button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowAddToLeft</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Enable Add To Left button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowAddToRight</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Enable Add To Right button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowSelectAll</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Enable Select All button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowUpDownOnLeft</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Enable up / down on the left side</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowUpDownOnRight</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Enable up / down on the right side</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">buttonCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set buttons css class</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">buttonCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set button css style</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleAccesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class for the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style for the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleDisabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Decides if a disable attribute should be added to the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleEmptyOption</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Decides if the second list will add an empty option</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleHeaderKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The header key for the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleHeaderValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The header value for the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleId</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The id of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleList</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The second iterable source to populate from.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of second list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of second list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The key expression to use for second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of second list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleListValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The value expression to use for second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleMultiple</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Decides if multiple attribute should be set on the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleName</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name for complete component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onblur attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onchange attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onclick attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOndblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the ondbclick attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onfocus attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onkeydown attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onkeypress attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onkeyup attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmousedown attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmousemove attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmouseout attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmouseover attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onmouseup attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleOnselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the onselect attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleSize</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the size attribute of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">doubleValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The value expression for complete component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">emptyOption</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Decides of an empty option is to be inserted in the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">formName</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The form name this component resides in and populates to</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the header value of the second list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">leftDownLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Down label for the left side.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">leftTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set Left title</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">leftUpLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Up label for the left side</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listLabelKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field content from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValueKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value label from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">multiple</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">rightDownLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Down label for the left side.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">rightTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set Right title</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">rightUpLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Up label for the right side.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">selectAllLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set Select All button label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">selectAllOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Javascript to run after Select All button pressed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Size of the element box (# of elements to show)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">upDownOnLeftOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Javascript to run after up / down on the left side buttons pressed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">upDownOnRightOnclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Javascript to run after up / down on the right side buttons pressed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/optiontransferselect.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.OptionTransferSelect {% endcomment %}
-
-```xml
-
- <!-- minimum configuration -->
- <s:optiontransferselect
-      label="Favourite Cartoons Characters"
-      name="leftSideCartoonCharacters"
-      list="{'Popeye', 'He-Man', 'Spiderman'}"
-      doubleName="rightSideCartoonCharacters"
-      doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
-  />
-
-  <!-- possible configuration -->
-  <s:optiontransferselect
-      label="Favourite Cartoons Characters"
-      name="leftSideCartoonCharacters"
-      leftTitle="Left Title"
-      rightTitle="Right Title"
-      list="{'Popeye', 'He-Man', 'Spiderman'}"
-      multiple="true"
-      headerKey="headerKey"
-      headerValue="--- Please Select ---"
-      emptyOption="true"
-      doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
-      doubleName="rightSideCartoonCharacters"
-      doubleHeaderKey="doubleHeaderKey"
-      doubleHeaderValue="--- Please Select ---"
-      doubleEmptyOption="true"
-      doubleMultiple="true"
-  />
-
-
+```jsp
+<s:optiontransferselect
+     label="Favourite Cartoons Characters"
+     name="leftSideCartoonCharacters"
+     list="{'Popeye', 'He-Man', 'Spiderman'}"
+     doubleName="rightSideCartoonCharacters"
+     doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
+ />
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.OptionTransferSelect {% endcomment %}
+**Possible example**
+
+```jsp
+<s:optiontransferselect
+    label="Favourite Cartoons Characters"
+    name="leftSideCartoonCharacters"
+    leftTitle="Left Title"
+    rightTitle="Right Title"
+    list="{'Popeye', 'He-Man', 'Spiderman'}"
+    multiple="true"
+    headerKey="headerKey"
+    headerValue="--- Please Select ---"
+    emptyOption="true"
+    doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
+    doubleName="rightSideCartoonCharacters"
+    doubleHeaderKey="doubleHeaderKey"
+    doubleHeaderValue="--- Please Select ---"
+    doubleEmptyOption="true"
+    doubleMultiple="true"
+/>
+```
diff --git a/source/tag-developers/param-tag.md b/source/tag-developers/param-tag.md
index ab39474..00705bd 100644
--- a/source/tag-developers/param-tag.md
+++ b/source/tag-developers/param-tag.md
@@ -1,178 +1,62 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: param tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # param
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+This tag can be used to parameterize other tags. The `include` tag and `bean` tag are examples of such tags.
 
-__Description__
+The parameters can be added with or without a `name` as key. If the tag provides a `name` attribute the parameters are 
+added using the `Component#addParameter(String, Object)` method. For unnamed parameters the tag must implement 
+the `UnnamedParametric` interface defined in this class (e.g. The TextTag does this).
 
+This tag has the following two parameters.
 
+- name (String) - the name of the parameter
+- value (Object) - the value of the parameter
+- suppressEmptyParameters (boolean) - whether to suppress this parameter if empty
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Param {% endcomment %}
-<p> <p>This tag can be used to parameterize other tags.<br>
- The include tag and bean tag are examples of such tags.
- </p>
+> **NOTE**: When you declare the param tag, the value can be defined in either a `value` attribute or as text between 
+> the start and end tag. Struts behaves a bit different according to these two situations. This is best illustrated 
+> using an example:
+> `<param name="color">blue</param>` (A)
+> `<param name="color" value="blue"/>` (B)
+> In the first situation (A) the value would be evaluated to the stack as a `java.lang.String` object. And in situation 
+> (B) the value would be evaluated to the stack as a `java.lang.Object` object. 
+> For more information see [WW-808](https://issues.apache.org/jira/browse/WW-808).
 
- <p>
- The parameters can be added with or without a name as key.
- If the tag provides a name attribute the parameters are added using the
- {@link Component#addParameter(String, Object) addParamter} method.
- For unnamed parameters the Tag must implement the {@link UnnamedParametric} interface defined in
- this class (e.g. The TextTag does this).
- </p>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/param-description.html %}
 
- <p>
- This tag has the following two paramters.
- </p>
- <!-- START SNIPPET: params -->
- <ul>
-      <li>name (String) - the name of the parameter</li>
-      <li>value (Object) - the value of the parameter</li>
-      <li>suppressEmptyParameters (boolean) - whether to suppress this parameter if empty</li>
- </ul>
- <!-- END SNIPPET: params -->
- <p>
- <b>Note:</b>
- When you declare the param tag, the value can be defined in either a <tt>value</tt> attribute or
- as text between the start and end tag. Struts behaves a bit different according to these two situations.
- This is best illustrated using an example:
- <br><param name="color">blue</param> <-- (A) -->
- <br><param name="color" value="blue"/> <-- (B) -->
- <br>In the first situation (A) the value would be evaluated to the stack as a <tt>java.lang.String</tt> object.
- And in situation (B) the value would be evaluated to the stack as a <tt>java.lang.Object</tt> object.
- <br>For more information see <a href="https://issues.apache.org/jira/browse/WW-808">WW-808</a>.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Param {% endcomment %}
+## Attributes
 
-__Parameters__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/param-attributes.html %}
 
+## Examples
 
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/param.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name of Parameter to set</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">suppressEmptyParameters</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to suppress empty parameters</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">The value of evaluating provided name against stack</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Value expression for Parameter to set</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/param.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Param {% endcomment %}
-
-```xml
- <pre>
- <ui:component>
-  <ui:param name="key"     value="[0]"/>
-  <ui:param name="value"   value="[1]"/>
-  <ui:param name="context" value="[2]"/>
- </ui:component>
- </pre>
-
- <p>
- Whether to suppress empty parameters:
- </p>
-
- <pre>
- <s:url action="eventAdd">
-   <s:param name="bean.searchString" value="%{bean.searchString}" />
-   <s:param name="bean.filter" value="%{bean.filter}" />
-   <s:param name="bean.pageNum" value="%{pager.pageNumber}" suppressEmptyParameters="true" />
- </s:url>
- </pre>
-
+```jsp
+<ui:component>
+ <ui:param name="key"     value="[0]"/>
+ <ui:param name="value"   value="[1]"/>
+ <ui:param name="context" value="[2]"/>
+</ui:component>
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Param {% endcomment %}
+Whether to suppress empty parameters:
 
+```jsp
+<s:url action="eventAdd">
+  <s:param name="bean.searchString" value="%{bean.searchString}" />
+  <s:param name="bean.filter" value="%{bean.filter}" />
+  <s:param name="bean.pageNum" value="%{pager.pageNumber}" suppressEmptyParameters="true" />
+</s:url>
+```
 
-{% comment %}start snippet id=exampledescription|javadoc=true|url=org.apache.struts2.components.Param {% endcomment %}
-<p> where the key will be the identifier and the value the result of an OGNL expression run against the current
- ValueStack.
-</p>
-{% comment %}end snippet id=exampledescription|javadoc=true|url=org.apache.struts2.components.Param {% endcomment %}
+where the key will be the identifier and the value the result of an OGNL expression run against the current ValueStack.
diff --git a/source/tag-developers/password-tag.md b/source/tag-developers/password-tag.md
index d2a2612..459569e 100644
--- a/source/tag-developers/password-tag.md
+++ b/source/tag-developers/password-tag.md
@@ -1,870 +1,28 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: password tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # password
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/password-description.html %}
 
-__Description__
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/password-attributes.html %}
 
+## Examples
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Password {% endcomment %}
-<p> <p>Render an HTML input tag of type password.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Password {% endcomment %}
+In this example, a `password` tag is displayed. For the label, we are calling ActionSupport's `getText()` to retrieve
+password label from a resource bundle.
 
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/password.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">maxLength</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Deprecated. Use maxlength instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">maxlength</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML maxlength attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">readonly</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether the input is readonly</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">showPassword</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to show input</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML size attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">type</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">text</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Specifies the html5 type element to display. e.g. text, email, url</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/password.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=exdescription|javadoc=true|lang=none|url=org.apache.struts2.components.Password {% endcomment %}
-
-```none
- <p>
- In this example, a password control is displayed. For the label, we are calling ActionSupport's getText() to
- retrieve password label from a resource bundle.
- </p>
-
+```jsp
+<s:password label="%{text('password')}" name="password" size="10" maxlength="15" />
 ```
-
-{% comment %}end snippet id=exdescription|javadoc=true|lang=none|url=org.apache.struts2.components.Password {% endcomment %}
-
-
-{% comment %}start snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.Password {% endcomment %}
-
-```xml
- <s:password label="%{text('password')}" name="password" size="10" maxlength="15" />
-
-```
-
-{% comment %}end snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.Password {% endcomment %}
diff --git a/source/tag-developers/property-tag.md b/source/tag-developers/property-tag.md
index dbcd175..7ba67b5 100644
--- a/source/tag-developers/property-tag.md
+++ b/source/tag-developers/property-tag.md
@@ -1,191 +1,36 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: property tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # property
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Used to get the property of a `value`, which will default to the top of the stack if none is specified.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/property-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/property-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Property {% endcomment %}
-<p> <p>
- Used to get the property of a <i>value</i>, which will default to the top of
- the stack if none is specified.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Property {% endcomment %}
+## Examples
 
-__Parameters__
+```jsp
+<s:push value="myBean">
+    <!-- Example 1: -->
+    <s:property value="myBeanProperty" />
 
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/property.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">default</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The default value to be used if <u>value</u> attribute is null</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escapeCsv</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to escape CSV (useful to escape a value for a column)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escapeHtml</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to escape HTML</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escapeJavaScript</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to escape Javascript</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escapeXml</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to escape XML</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">&lt;top of stack&gt;</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Object</td>
-
-					<td align="left" valign="top">Value to be displayed</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/property.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Property {% endcomment %}
-
-```xml
-
- <s:push value="myBean">
-     <!-- Example 1: -->
-     <s:property value="myBeanProperty" />
-
-     <!-- Example 2: -->TextUtils
-     <s:property value="myBeanProperty" default="a default value" />
- </s:push>
-
-
+    <!-- Example 2: -->
+    <s:property value="myBeanProperty" default="a default value" />
+</s:push>
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Property {% endcomment %}
-
-
-{% comment %}start snippet id=exampledescription|lang=none|javadoc=true|url=org.apache.struts2.components.Property {% endcomment %}
-
-```none
- Example 1 prints the result of myBean's getMyBeanProperty() method.
- Example 2 prints the result of myBean's getMyBeanProperty() method and if it is null, print 'a default value' instead.
-
-```
-
-{% comment %}end snippet id=exampledescription|lang=none|javadoc=true|url=org.apache.struts2.components.Property {% endcomment %}
+Example 1 prints the result of myBean's `getMyBeanProperty()` method.
+Example 2 prints the result of myBean's `getMyBeanProperty()` method and if it is null, print `a default value` instead.
diff --git a/source/tag-developers/push-tag.md b/source/tag-developers/push-tag.md
index 52fee89..38dab9d 100644
--- a/source/tag-developers/push-tag.md
+++ b/source/tag-developers/push-tag.md
@@ -1,181 +1,68 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: push tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # push
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/push-description.html %}
 
-__Description__
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/push-attributes.html %}
 
+## Examples
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-<p> <p>Push value on stack for simplified usage.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/push.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Value to push on stack</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/push.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example1|lang=xml|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-```xml
- <s:push value="user">
-     <s:propery value="firstName" />
-     <s:propery value="lastName" />
- </s:push>
-
+```jsp
+<s:push value="user">
+    <s:propery value="firstName" />
+    <s:propery value="lastName" />
+</s:push>
 ```
 
-{% comment %}end snippet id=example1|lang=xml|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
+Pushed user into the stack and hence property tag could access user's properties (`firstName`, `lastName`, etc.) since
+user is now at the top of the stack.
 
-
-{% comment %}start snippet id=example1description|lang=none|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-```none
- Pushed user into the stack, and hence property tag could access user's properties
- (firstName, lastName etc) since user is now at the top of the stack
-
+```jsp
+<s:push value="myObject">                            ----- (1)
+     <s:bean name="jp.SomeBean" var="myBean"/>       ----- (2)
+        <s:param name="myParam" value="top"/>        ----- (3)
+     </s:bean>
+</s:push>
 ```
 
-{% comment %}end snippet id=example1description|lang=none|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
+when in (1), `myObject` is at the top of the stack
+when in (2), `jp.SomeBean` is in the top of stack, also in stack's context with key `myBean`
+when in (3), top will get the `jp.SomeBean` instance
 
-
-{% comment %}start snippet id=example2|lang=xml|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-```xml
-  <s:push value="myObject">                              ----- (1)
-       <s:bean name="jp.SomeBean" var="myBean"/>        ----- (2)
-          <s:param name="myParam" value="top"/>        ----- (3)
-       </s:bean>
-   </s:push>
-
+```jsp
+<s:push value="myObject">                                     ---(A)
+   <s:bean name="jp.SomeBean" var="myBean"/>                  ---(B)
+      <s:param name="myParam" value="top.mySomeOtherValue"/>  ---(C)
+   </s:bean>
+</s:push>
 ```
 
-{% comment %}end snippet id=example2|lang=xml|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
+when in (A), `myObject` is at the top of the stack
+when in (B), `jp.SomeBean` is at the top of the stack, also in context with key `myBean`
+when in (C), top refers to `jp.SomeBean` instance. so `top.mySomeOtherValue` would invoke SomeBean's `mySomeOtherValue()`
+method
 
-
-{% comment %}start snippet id=example2description|lang=none|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-```none
- when in (1), myObject is at the top of the stack
- when in (2), jp.SomeBean is in the top of stack, also in stack's context with key myBean
- when in (3), top will get the jp.SomeBean instance
-
+```jsp
+<s:push value="myObject">                               ---- (i)
+   <s:bean name="jp.SomeBean" var="myBean"/>            ---- (ii)
+      <s:param name="myParam" value="[1].top"/>         -----(iii)
+   </s:bean>
+</s:push>
 ```
 
-{% comment %}end snippet id=example2description|lang=none|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-
-{% comment %}start snippet id=example3|lang=xml|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-```xml
- <s:push value="myObject">                                       ---(A)
-    <s:bean name="jp.SomeBean" var="myBean"/>                   ---(B)
-       <s:param name="myParam" value="top.mySomeOtherValue"/>  ---(C)
-    </s:bean>
- </s:push>
-
-```
-
-{% comment %}end snippet id=example3|lang=xml|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-
-{% comment %}start snippet id=example3description|lang=none|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-```none
- when in (A), myObject is at the top of the stack
- when in (B), jp.SomeBean is at the top of the stack, also in context with key myBean
- when in (C), top refers to jp.SomeBean instance. so top.mySomeOtherValue would invoke SomeBean's mySomeOtherValue() method
-
-```
-
-{% comment %}end snippet id=example3description|lang=none|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-
-{% comment %}start snippet id=example4|lang=xml|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-```xml
- <s:push value="myObject">                                 ---- (i)
-    <s:bean name="jp.SomeBean" var="myBean"/>             ---- (ii)
-       <s:param name="myParam" value="[1].top"/>         -----(iii)
-    </s:bean>
- </s:push>
-
-```
-
-{% comment %}end snippet id=example4|lang=xml|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-
-{% comment %}start snippet id=example4description|lang=none|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
-
-```none
- when in (i), myObject is at the top of the stack
- when in (ii), jp.SomeBean is at the top of the stack, followed by myObject
- when in (iii), [1].top will returned top of the cut of stack starting from myObject, namely myObject itself
-
-```
-
-{% comment %}end snippet id=example4description|lang=none|javadoc=true|url=org.apache.struts2.components.Push {% endcomment %}
+when in (i), `myObject` is at the top of the stack
+when in (ii), `jp.SomeBean` is at the top of the stack, followed by `myObject`
+when in (iii), `[1].top` will returned top of the cut of stack starting from `myObject`, namely `myObject` itself
diff --git a/source/tag-developers/radio-tag.md b/source/tag-developers/radio-tag.md
index b5dde5d..6abbd1c 100644
--- a/source/tag-developers/radio-tag.md
+++ b/source/tag-developers/radio-tag.md
@@ -1,909 +1,40 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: radio tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # radio
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+> **NOTE**: that the `listkey` and `listvalue` attribute will default to `key` and `value` respectively only when 
+> the `list` attribute is evaluated to a Map or its descendant. Everything else will result in `listkey` and `listvalue` 
+> to be null and not used.
 
-| 
+## Description
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/radio-description.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ListUIBean {% endcomment %}
-<p> <p>
- Note that the listkey and listvalue attribute will default to "key" and "value"
- respectively only when the list attribute is evaluated to a Map or its descendant.
- Everything else will result in listkey and listvalue to be null and not used.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ListUIBean {% endcomment %}
+## Attributes
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/radio-attributes.html %}
 
+## Examples
 
+In this example, a radio control is displayed with a list of genders. The gender list is built from attribute 
+`var=genders`. The framework calls `getGenders()` which will return a Map. For examples using `listKey` and `listValue`
+attributes, see the section `select` tag. The default selected one will be determined (in this case) by the `getMale()`
+method in the action class which should return a value similar to the key of the `getGenders()` map if that particular
+gender is to be selected.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Radio {% endcomment %}
-<p> <p>Render a radio button input field.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Radio {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/radio.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listLabelKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field content from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValueKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value label from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/radio.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=exdescription|javadoc=true|url=org.apache.struts2.components.Radio {% endcomment %}
-<p> In this example, a radio control is displayed with a list of genders. The gender list is built from attribute
- id=genders. The framework calls getGenders() which will return a Map. For examples using listKey and listValue attributes,
- see the section select tag. The default selected one will be determined (in this case) by the getMale() method
- in the action class which should return a value similar to the key of the getGenders() map if that particular
- gender is to be selected.
-</p>
-{% comment %}end snippet id=exdescription|javadoc=true|url=org.apache.struts2.components.Radio {% endcomment %}
-
-```xml
- <s:action name="GenderMap" var="genders"/>
- <s:radio label="Gender" name="male" list="#genders.genders"/>
-
+```jsp
+<s:action name="GenderMap" var="genders"/>
+<s:radio label="Gender" name="male" list="#genders.genders"/>
 ```
 
 ```ftl
- <@s.radio name="car" list={"ford": "Ford Motor Co", "toyota": "Toyota"} listKey="key" listValue="value" />
+<@s.radio name="car" list={"ford": "Ford Motor Co", "toyota": "Toyota"} listKey="key" listValue="value" />
 ```
diff --git a/source/tag-developers/reset-tag.md b/source/tag-developers/reset-tag.md
index 8c96ebf..7a65b78 100644
--- a/source/tag-developers/reset-tag.md
+++ b/source/tag-developers/reset-tag.md
@@ -1,864 +1,42 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: reset tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # reset
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Render a reset button. The reset tag is used together with the form tag to provide form resetting.
+The reset can have two different types of rendering:
+- input: renders as html `<input type="reset"...>`
+- button: renders as html `<button type="reset"...>`
+ 
+Please note that the button type has advantages by adding the possibility to separate the submitted value from the text 
+shown on the button face, but has issues with Microsoft Internet Explorer at least up to 6.0.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/reset-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/reset-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Reset {% endcomment %}
-<p> Render a reset button. The reset tag is used together with the form tag to provide form resetting.
- The reset can have two different types of rendering:
- <ul>
- <li>input: renders as html <input type="reset"...></li>
- <li>button: renders as html <button type="reset"...></li>
- </ul>
- Please note that the button type has advantages by adding the possibility to separate the submitted value from the
- text shown on the button face, but has issues with Microsoft Internet Explorer at least up to 6.0
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Reset {% endcomment %}
+## Examples
 
-__Parameters__
+**Example 1**
 
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/reset.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">action</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set action attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Supply a reset button text apart from reset value. Will have no effect for <i>input</i> type reset, since button text will always be the value parameter.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">method</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set method attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">openTemplate</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">src</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Supply an image src for <i>image</i> type reset button. Will have no effect for types <i>input</i> and <i>button</i>.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">type</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">input</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/reset.html {% endcomment %}
-
-__Examples__
-
-__Example 1__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Reset {% endcomment %}
-
-```xml
- <s:reset value="Reset" />
-
+```jsp
+<s:reset value="Reset" />
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Reset {% endcomment %}
+**Example 2**
 
-__Example 2__
-
-
-
-{% comment %}start snippet id=example2|lang=xml|javadoc=true|url=org.apache.struts2.components.Reset {% endcomment %}
-
-```xml
- Render a reset button:
- <s:reset type="button" key="reset"/>
-
+```jsp
+Render a reset button:
+<s:reset type="button" key="reset"/>
 ```
-
-{% comment %}end snippet id=example2|lang=xml|javadoc=true|url=org.apache.struts2.components.Reset {% endcomment %}
diff --git a/source/tag-developers/select-tag.md b/source/tag-developers/select-tag.md
index a82b3b1..102a4dd 100644
--- a/source/tag-developers/select-tag.md
+++ b/source/tag-developers/select-tag.md
@@ -1,1010 +1,54 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: select tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # select
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Render an HTML input tag of type select.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/select-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/select-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Select {% endcomment %}
-<p>
- Render an HTML input tag of type select.
+## Examples
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Select {% endcomment %}
+> **NOTE**: For any of the tags that use lists (select probably being the most ubiquitous), which uses the OGNL list
+> notation (see the "months" example above), it should be noted that the map key created (in the months example,
+> the '01', '02', etc.) is typed. '1' is a char, '01' is a String, "1" is a String. This is important since if
+> the value returned by your "value" attribute is NOT the same type as the key in the "list" attribute, they
+> WILL NOT MATCH, even though their String values may be equivalent. If they don't match, nothing in your list
+> will be auto-selected.
 
-__Parameters__
+```jsp
+<s:select label="Pets"
+       name="petIds"
+       list="petDao.pets"
+       listKey="id"
+       listValue="name"
+       multiple="true"
+       size="3"
+       required="true"
+       value="%{petDao.pets.{id}}"
+/>
 
+<s:select label="Months"
+       name="months"
+       headerKey="-1" headerValue="Select Month"
+       list="#{'01':'Jan', '02':'Feb', [...]}"
+       value="selectedMonth"
+       required="true"
+/>
 
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/select.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">emptyOption</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether or not to add an empty (--) option after the header option</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Value expression for first item in list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listLabelKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field content from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValueKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value label from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">multiple</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top"> Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array or a Collection(of appropriate types) via the value attribute. If one of the keys equals one of the values in the Collection or Array it wil be selected</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Size of the element box (# of elements to show)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/select.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=exnote|javadoc=true|lang=none|url=org.apache.struts2.components.Select {% endcomment %}
-
-```none
-
- Note: For any of the tags that use lists (select probably being the most ubiquitous), which uses the OGNL list
- notation (see the "months" example above), it should be noted that the map key created (in the months example,
- the '01', '02', etc.) is typed. '1' is a char, '01' is a String, "1" is a String. This is important since if
- the value returned by your "value" attribute is NOT the same type as the key in the "list" attribute, they
- WILL NOT MATCH, even though their String values may be equivalent. If they don't match, nothing in your list
- will be auto-selected.
-
-
+// The month id (01, 02, ...) returned by the getSelectedMonth() call
+// against the stack will be auto-selected
 ```
-
-{% comment %}end snippet id=exnote|javadoc=true|lang=none|url=org.apache.struts2.components.Select {% endcomment %}
-
-
-{% comment %}start snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.Select {% endcomment %}
-
-```xml
-
- <s:select label="Pets"
-        name="petIds"
-        list="petDao.pets"
-        listKey="id"
-        listValue="name"
-        multiple="true"
-        size="3"
-        required="true"
-        value="%{petDao.pets.{id}}"
- />
-
- <s:select label="Months"
-        name="months"
-        headerKey="-1" headerValue="Select Month"
-        list="#{'01':'Jan', '02':'Feb', [...]}"
-        value="selectedMonth"
-        required="true"
- />
-
- // The month id (01, 02, ...) returned by the getSelectedMonth() call
- // against the stack will be auto-selected
-
-
-```
-
-{% comment %}end snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.Select {% endcomment %}
diff --git a/source/tag-developers/selecting-template-directory.md b/source/tag-developers/selecting-template-directory.md
index 2cde004..d8906a0 100644
--- a/source/tag-developers/selecting-template-directory.md
+++ b/source/tag-developers/selecting-template-directory.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/selecting-themes.md b/source/tag-developers/selecting-themes.md
index f3a3cb9..b4dabcf 100644
--- a/source/tag-developers/selecting-themes.md
+++ b/source/tag-developers/selecting-themes.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/set-tag.md b/source/tag-developers/set-tag.md
index d2cc436..b886ae1 100644
--- a/source/tag-developers/set-tag.md
+++ b/source/tag-developers/set-tag.md
@@ -1,144 +1,46 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: set tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # set
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+The set tag assigns a value to a variable in a specified scope. It is useful when you wish to assign a variable 
+to a complex expression and then simply reference that variable each time rather than the complex expression. This is
+useful in both cases: when the complex expression takes time (performance improvement) or is hard to read (code
+readability improvement).
 
-__Description__
+If the tag is used with body content, the evaluation of the value parameter is omitted. Instead, the String to which 
+the body evaluates is set as value for the scoped variable.
 
+The scopes available are as follows:
+- `application` - the value will be set in application scope according to servlet spec. using the name as its key
+- `session` - the value will be set in session scope according to servlet spec. using the name as key
+- `request` - the value will be set in request scope according to servlet spec. using the name as key
+- `page` - the value will be set in page scope according to servlet spec. using the name as key
+- `action` - the value will be set in the request scope and Struts' action context using the name as key
 
+> **NOTE**: If no scope is specified, it will default to `action` scope.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Set {% endcomment %}
-<p> <p>The set tag assigns a value to a variable in a specified scope. It is useful when you wish to assign a variable to a
- complex expression and then simply reference that variable each time rather than the complex expression. This is
- useful in both cases: when the complex expression takes time (performance improvement) or is hard to read (code
- readability improvement).</p>
- <p>If the tag is used with body content, the evaluation of the value parameter is omitted. Instead, the String to
- which the body evaluates is set as value for the scoped variable.</p>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/set-description.html %}
 
- <p>The scopes available are as follows:</p>
- <ul>
-   <li>application - the value will be set in application scope according to servlet spec. using the name as its key</li>
-   <li>session - the value will be set in session scope according to servlet spec. using the name as key </li>
-   <li>request - the value will be set in request scope according to servlet spec. using the name as key </li>
-   <li>page - the value will be set in page scope according to servlet spec. using the name as key</li>
-   <li>action - the value will be set in the request scope and Struts' action context using the name as key</li>
- </ul>
+## Attributes
 
- <p>
- NOTE:<br>
- If no scope is specified, it will default to action scope.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Set {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/set-attributes.html %}
 
-__Parameters__
+## Examples
 
+```jsp
+<s:set var="personName" value="person.name"/>
+Hello, <s:property value="#personName"/>
 
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/set.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">scope</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">action</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The scope in which to assign the variable. Can be <b>application</b>, <b>session</b>, <b>request</b>, <b>page</b>, or <b>action</b>.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The value that is assigned to the variable named <i>name</i></td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name used to reference the value pushed into the Value Stack</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/set.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Set {% endcomment %}
-
-```xml
- <s:set var="personName" value="person.name"/>
- Hello, <s:property value="#personName"/>
-
- <s:set var="janesName">Jane Doe</s:set>
- <s:property value="#janesName"/>
-
+<s:set var="janesName">Jane Doe</s:set>
+<s:property value="#janesName"/>
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.Set {% endcomment %}
diff --git a/source/tag-developers/simple-theme.md b/source/tag-developers/simple-theme.md
index 1c1b5bf..92d25a4 100644
--- a/source/tag-developers/simple-theme.md
+++ b/source/tag-developers/simple-theme.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 parent:
   url: themes-and-templates.html
diff --git a/source/tag-developers/sort-tag.md b/source/tag-developers/sort-tag.md
index 684816a..3b12bac 100644
--- a/source/tag-developers/sort-tag.md
+++ b/source/tag-developers/sort-tag.md
@@ -1,146 +1,49 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: sort tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # sort
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+A Tag that sorts a List using a Comparator both passed in as the tag attribute. If `var` attribute is specified,
+the sorted list will be placed into the `PageContext` attribute using the key specified by `var`. The sorted list will 
+**ALWAYS** be pushed into the stack and poped at the end of this tag.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/sort-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/sort-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SortIteratorTag {% endcomment %}
-<p>
- <b>NOTE: JSP-TAG</b>
+## Examples
 
- <p>A Tag that sorts a List using a Comparator both passed in as the tag attribute.
- If 'var' attribute is specified, the sorted list will be placed into the PageContext
- attribute using the key specified by 'var'. The sorted list will ALWAYS be
- pushed into the stack and poped at the end of this tag.</p>
+**Example 1**
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SortIteratorTag {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|url=struts2-tags/sort.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">comparator</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">java.util.Comparator</td>
-
-					<td align="left" valign="top">The comparator to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">source</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The iterable source to sort</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to store the resultant iterator into page context, if such name is supplied</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|url=struts2-tags/sort.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SortIteratorTag {% endcomment %}
-
-```xml
-
- USAGE 1:
- <s:sort comparator="myComparator" source="myList">
-      <s:iterator>
-      <!-- do something with each sorted elements -->
-      <s:property value="..." />
-      </s:iterator>
- </s:sort>
-
- USAGE 2:
- <s:sort var="mySortedList" comparator="myComparator" source="myList" />
-
- <%
-    Iterator sortedIterator = (Iterator) pageContext.getAttribute("mySortedList");
-    for (Iterator i = sortedIterator; i.hasNext(); ) {
-      // do something with each of the sorted elements
-    }
- %>
-
-
+```jsp
+<s:sort comparator="myComparator" source="myList">
+     <s:iterator>
+     <!-- do something with each sorted elements -->
+     <s:property value="..." />
+     </s:iterator>
+</s:sort>
 ```
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SortIteratorTag {% endcomment %}
+**Example 2**
+
+```jsp
+<s:sort var="mySortedList" comparator="myComparator" source="myList" />
+
+<%
+   Iterator sortedIterator = (Iterator) pageContext.getAttribute("mySortedList");
+   for (Iterator i = sortedIterator; i.hasNext(); ) {
+     // do something with each of the sorted elements
+   }
+%>
+```
diff --git a/source/tag-developers/struts-tags.md b/source/tag-developers/struts-tags.md
index fdf5507..e4c5725 100644
--- a/source/tag-developers/struts-tags.md
+++ b/source/tag-developers/struts-tags.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/submit-tag.md b/source/tag-developers/submit-tag.md
index 622a6c9..6c4fed0 100644
--- a/source/tag-developers/submit-tag.md
+++ b/source/tag-developers/submit-tag.md
@@ -1,847 +1,34 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: sort tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # submit
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+Render a submit button. The submit tag is used together with the form tag to provide asynchronous form submissions.
 
-__Description__
+The submit can have three different types of rendering:
+- `input`: renders as html `<input type="submit"...>`
+- `image`: renders as html `<input type="image"...>`
+- `button`: renders as html `<button type="submit"...>`
+ 
+Please note that the button type has advantages by adding the possibility to seperate the submitted value from the text 
+shown on the button face, but has issues with Microsoft Internet Explorer at least up to 6.0.
 
+> To use method attribute (to use multiple submit buttons which direct to different action methods) you must set 
+> **struts.enable.DynamicMethodInvocation** to **true** but this can lead to 
+> [security vulnerability](http://www.brucephillips.name/blog/index.cfm/2011/2/19/Struts-2-Security-Vulnerability--Dynamic-Method-Invocation)^[http://www.brucephillips.name/blog/index.cfm/2011/2/19/Struts-2-Security-Vulnerability--Dynamic-Method-Invocation] 
+> - use with care! Instead you can try to use Multiple Submit Buttons] solution.
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/submit-description.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Submit {% endcomment %}
-<p> Render a submit button. The submit tag is used together with the form tag to provide asynchronous form submissions.
- The submit can have three different types of rendering:
- <ul>
- <li>input: renders as html <input type="submit"...></li>
- <li>image: renders as html <input type="image"...></li>
- <li>button: renders as html <button type="submit"...></li>
- </ul>
- Please note that the button type has advantages by adding the possibility to seperate the submitted value from the
- text shown on the button face, but has issues with Microsoft Internet Explorer at least up to 6.0
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Submit {% endcomment %}
+## Attributes
 
-
-
-| To use method attribute (to use multiple submit buttons which direct to different action methods) you must set **struts.enable.DynamicMethodInvocation** to **true** but this can lead to [security vulnerability](http://www.brucephillips.name/blog/index.cfm/2011/2/19/Struts-2-Security-Vulnerability--Dynamic-Method-Invocation)^[http://www.brucephillips.name/blog/index.cfm/2011/2/19/Struts-2-Security-Vulnerability--Dynamic-Method-Invocation] - use with care! Instead you can try to use _Multiple Submit Buttons_  solution.
-
-| 
-
-
-This tag works with all themes, but has special importance when combined with the [form](form-tag.html) tag in the [ajax theme](ajax-theme.html). Please read up on the [ajax theme](ajax-theme.html) for more information.
-
-| 
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/submit.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">action</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set action attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">method</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set method attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">openTemplate</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">src</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">type</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">input</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/submit.html {% endcomment %}
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/submit-attributes.html %}
diff --git a/source/tag-developers/subset-tag.md b/source/tag-developers/subset-tag.md
index b29566a..ac5b569 100644
--- a/source/tag-developers/subset-tag.md
+++ b/source/tag-developers/subset-tag.md
@@ -1,257 +1,108 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: subset tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # subset
 
-__Description__
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
+## Description
 
+A tag that takes an iterator and outputs a subset of it. It delegates to `org.apache.struts2.util.SubsetIteratorFilter`
+internally to perform the subset functionality.
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-<p> <b>NOTE: JSP-TAG</b>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/subset-description.html %}
 
- <p>A tag that takes an iterator and outputs a subset of it. It delegates to
- {@link org.apache.struts2.util.SubsetIteratorFilter} internally to
- perform the subset functionality.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
+## Attributes
 
-__Parameters__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/subset-attributes.html %}
 
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/subset.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">count</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Indicate the number of entries to be in the resulting subset iterator</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">decider</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">org.apache.struts2.util.SubsetIteratorFilter.Decider</td>
-
-					<td align="left" valign="top">Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset iterator</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">source</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Indicate the source of which the resulting subset iterator is to be derived base on</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">start</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to store the resultant iterator into page context, if such name is supplied</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/subset.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=action|lang=java|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
+## Examples
 
 ```java
- public class MySubsetTagAction extends ActionSupport {
-      public String execute() throws Exception {
-         l = new ArrayList();
-         l.add(new Integer(1));
-         l.add(new Integer(2));
-         l.add(new Integer(3));
-         l.add(new Integer(4));
-         l.add(new Integer(5));
-         return "done";
+public class MySubsetTagAction extends ActionSupport {
+     public String execute() throws Exception {
+        l = new ArrayList();
+        l.add(new Integer(1));
+        l.add(new Integer(2));
+        l.add(new Integer(3));
+        l.add(new Integer(4));
+        l.add(new Integer(5));
+        return "done";
+     }
+
+
+     public Integer[] getMyArray() {
+        return a;
+     }
+
+     public List getMyList() {
+        return l;
       }
 
-
-      public Integer[] getMyArray() {
-         return a;
-      }
-
-      public List getMyList() {
-         return l;
-       }
-
-      public Decider getMyDecider() {
-      return new Decider() {
-          public boolean decide(Object element) throws Exception {
-              int i = ((Integer)element).intValue();
-              return (((i % 2) == 0)?true:false);
-          }
-      };
-      }
-  }
-
+     public Decider getMyDecider() {
+         return new Decider() {
+             public boolean decide(Object element) throws Exception {
+                 int i = ((Integer)element).intValue();
+                 return (((i % 2) == 0)?true:false);
+             }
+         };
+     }
+}
 ```
 
-{% comment %}end snippet id=action|lang=java|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
+**Basic example**
 
+```jsp
+<s:subset source="myList">
+   <s:iterator>
+      <s:property />
+   </s:iterator>
+</s:subset>
+```
 
-{% comment %}start snippet id=example1|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
+**List with count**
 
 ```xml
- <!-- s: List basic -->
-    <s:subset source="myList">
+<s:subset source="myList" count="3">
+   <s:iterator>
+       <s:property />
+   </s:iterator>
+</s:subset>
+```
+
+**List with start**
+
+```jsp
+<s:subset source="myList" count="13" start="3">
+   <s:iterator>
+     <s:property />
+   </s:iterator>
+</s:subset>
+```
+
+**List with var**
+
+```jsp
+<s:subset var="mySubset" source="myList" count="13" start="3" />
+<%
+    Iterator i = (Iterator) pageContext.getAttribute("mySubset");
+    while(i.hasNext()) {
+%>
+<%=i.next() %>
+<%  } %>
+```
+
+**List with Decider**
+
+```jsp
+<s:subset source="myList" decider="myDecider">
        <s:iterator>
-          <s:property />
+            <s:property />
        </s:iterator>
-    </s:subset>
-
+</s:subset>
 ```
-
-{% comment %}end snippet id=example1|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-
-
-{% comment %}start snippet id=example2|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-
-```xml
- <!-- B: List with count -->
-    <s:subset source="myList" count="3">
-       <s:iterator>
-           <s:property />
-       </s:iterator>
-     </s:subset>
-
-```
-
-{% comment %}end snippet id=example2|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-
-
-{% comment %}start snippet id=example3|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-
-```xml
- <!--  C: List with start -->
-      <s:subset source="myList" count="13" start="3">
-         <s:iterator>
-           <s:property />
-         </s:iterator>
-      </s:subset>
-
-```
-
-{% comment %}end snippet id=example3|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-
-
-{% comment %}start snippet id=example4|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-
-```xml
- <!--  D: List with var -->
-      <s:subset var="mySubset" source="myList" count="13" start="3" />
-      <%
-          Iterator i = (Iterator) pageContext.getAttribute("mySubset");
-          while(i.hasNext()) {
-      %>
-      <%=i.next() %>
-      <%  } %>
-
-```
-
-{% comment %}end snippet id=example4|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-
-
-{% comment %}start snippet id=example5|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
-
-```xml
-  <!--  D: List with Decider -->
-      <s:subset source="myList" decider="myDecider">
-             <s:iterator>
-                  <s:property />
-             </s:iterator>
-      </s:subset>
-
-```
-
-{% comment %}end snippet id=example5|lang=xml|javadoc=true|url=org.apache.struts2.views.jsp.iterator.SubsetIteratorTag {% endcomment %}
diff --git a/source/tag-developers/tag-reference.md b/source/tag-developers/tag-reference.md
index ac1b201..36300ae 100644
--- a/source/tag-developers/tag-reference.md
+++ b/source/tag-developers/tag-reference.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/tag-syntax.md b/source/tag-developers/tag-syntax.md
index 5f28e45..79e1c38 100644
--- a/source/tag-developers/tag-syntax.md
+++ b/source/tag-developers/tag-syntax.md
@@ -1,167 +1,152 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # Tag Syntax
+{:.no_toc}
 
-The tags are designed to display dynamic data. To create a input field that displays the property "postalCode", we'd pass the String "postalCode" to the textfield tag.
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-**Creating a dynamic input field**
+The tags are designed to display dynamic data. To create a input field that displays the property "postalCode", 
+we'd pass the String "postalCode" to the textfield tag.
 
+## Creating a dynamic input field
 
 ```jsp
-
 <s:textfield name="postalCode"/>
-
 ```
 
-If there is a "postalCode" property on the value stack, its value will be set to the input field. When the field is submitted back to the framework, the value of the control will be set back to the "postalCode" property.
+If there is a "postalCode" property on the value stack, its value will be set to the input field. When the field is 
+submitted back to the framework, the value of the control will be set back to the "postalCode" property.
 
-Sometimes, we want to pass the dynamic data to a tag. For example, we might want to display a label with the input field, and we might want to obtain the label from the application's messages resources. Accordingly, the framework will parse expressions found in the tag attributes, so that we can merge dynamic data into the tag attributes at runtime. The expression escape sequence is "%{ ... }".  Any text embedded in the escape sequence is evalulated as an expression.
+Sometimes, we want to pass the dynamic data to a tag. For example, we might want to display a label with the input 
+field, and we might want to obtain the label from the application's messages resources. Accordingly, the framework will 
+parse expressions found in the tag attributes, so that we can merge dynamic data into the tag attributes at runtime. 
+The expression escape sequence is `%{ ... }`.  Any text embedded in the escape sequence is evalulated as an expression.
 
-**Using an expression to set the label**
-
+### Using an expression to set the label
 
 ```jsp
-
 <s:textfield key="postalCode.label" name="postalCode"/>
-
 ```
 
-The expression language ([OGNL](ognl.html)) lets us call methods and evaluate properties. The method `getText` is provided by ActionSupport, which is the base class for most Actions. Since the Action is on the stack, we can call any of its methods from an expression, including `getText`.
+The expression language ([OGNL](ognl)) lets us call methods and evaluate properties. The method `getText` is provided 
+by `ActionSupport`, which is the base class for most Actions. Since the Action is on the stack, we can call any of its 
+methods from an expression, including `getText`.
 
 ## Non-String Attributes
 
-The HTTP protocol is text-based, but some tags have non-String attribute types, like `bool` or `int`. To make using non-String attributes intuitative, the framework evaulates **all** non-String attributes as an expression. In this case, you do not need to use the escape notation. (But, if you do anyway , the framework will just strip it off.)
+The HTTP protocol is text-based, but some tags have non-String attribute types, like `bool` or `int`. To make using 
+non-String attributes intuitative, the framework evaulates **all** non-String attributes as an expression. 
+In this case, you do not need to use the escape notation. (But, if you do anyway , the framework will just strip it off.)
 
-**Evaluating booleans**
-
+### Evaluating booleans
 
 ```jsp
-
 <s:select key="state.label" name="state" multiple="true"/>
-
 ```
 
-Since the attribute `multiple` maps to a boolean property, the framework does not interpret the value as a String. The value is evaluated as an expression and automtically converted to a boolean.
+Since the attribute `multiple` maps to a boolean property, the framework does not interpret the value as a String. 
+The value is evaluated as an expression and automtically converted to a boolean.
 
 Since it's easy to forget which attributes are String and which are non-String, you can still use the escape notation.
 
-**Evaluating booleans (verbose)**
-
+### Evaluating booleans (verbose)
 
 ```jsp
-
 <s:select key="state.label" name="state" multiple="%{true}"/>
-
 ```
 
-**Evaluating booleans (with property)**
-
+### Evaluating booleans (with property)
 
 ```jsp
-
 <s:select key="state.label" name="state" multiple="allowMultiple"/>
-
 ```
 
-**Evaluating booleans (verbose with property)**
-
+### Evaluating booleans (verbose with property)
 
 ```jsp
-
 <s:select key="state.label" name="state" multiple="%{allowMultiple}"/>
-
 ```
 
 ## value is an Object!
 
-Most often, the `value` attribute is set automatically, since `name` attribute usually tells the framework which property to call to set the `value`. But, if there is a reason to set the `value` directly, be advised that `value`**is an Object****_NOT_ ****a String**.
+Most often, the `value` attribute is set automatically, since `name` attribute usually tells the framework which 
+property to call to set the `value`. But, if there is a reason to set the `value` directly, be advised that `value` 
+**is an Object _NOT_ a String**.
 
- (!)  Since `value` is not a String, whatever is passed to `value` is evaluated as an expression - **NOT** a String literal.
+> NOTE: Since `value` is not a String, whatever is passed to `value` is evaluated as an expression - **NOT** a String literal.
 
-**Probably wrong!**
-
+## Probably wrong!
 
 ```jsp
-
 <s:textfield key="state.label" name="state" value="ca"/>
-
 ```
 
-If a `textfield` is passed the value attribute `"ca"`, the framework will look for a property named `getCa`. Generally, this is not what we mean. What we mean to do is pass a literal String. In the expression language, literals are placed within quotes
+If a `textfield` is passed the value attribute `ca`, the framework will look for a property named `getCa`. Generally, 
+this is not what we mean. What we mean to do is pass a literal String. In the expression language, literals are placed 
+within quotes
 
-**Passing a literal value the right way**
-
+## Passing a literal value the right way
 
 ```jsp
-
 <s:textfield key="state.label" name="state" value="%{'ca'}" />
-
 ```
 
 Another approach would be to use the idiom `value="'ca'"`, but, in this case, using the expression notation is recommended.
 
 Boiled down, the tag attributes are evaluated using three rules.
 
-1. All _String_  attribute types are _parsed_  for the "%{ ... }" notation.
+1. All _String_ attribute types are _parsed_ for the `%{ ... }` notation.
+2. All _non-String_ attribute types are **not** parsed, but evaluated directly as an expression
+3. The exception to rule #2 is that if the _non-String_ attribute uses the escape notion `%{}`, the notation is ignored 
+  as redundant, and the content evaluated.
 
-2. All _non-String_  attribute  types are **not** parsed, but evaluated directly as an expression
-
-3. The exception to rule #2 is that if the _non-String_  attribute uses the escape notion "%{}", the notation is ignored as redundant, and the content evaluated.
-
-
-Please remember about _altSyntax_  option that can change when value is evaluated as an expression - _Alt Syntax_ 
-
-| 
+Please remember about _altSyntax_ option that can change when value is evaluated as an expression - [Alt Syntax](alt-syntax) 
 
 ## Expression Language Notations
 
-|<p>Username: \${user.username}</p>| A JavaBean object in a standard context in Freemarker, Velocity, or JSTL EL (Not OGNL). |
-|-----------------------------------------|------------------------------------------------------------------------------------------|
-|<s:textfield name="username"/>| A username property on the Value Stack. |
-|<s:url id="es" action="Hello">\
-  <s:param name="request_locale">\
-    es\
-  </s:param>\
-</s:url>\
-<s:a href="%{es}">Espanol</s:a>|  Another way to refer to a property placed on the Value Stack. |
-|<s:property\
-  value="#session.user.username" />| The username property of the User object in the Session context. |
-|<s:select\
-  label="FooBar" name="foo"\
-  list="#{'username':'trillian',\
-    'username':'zaphod'}" />|  A static Map, as in put("username","trillian"). |
+- A JavaBean object in a standard context in Freemarker, Velocity, or JSTL EL (Not OGNL).
+  ```jsp
+  Username: ${user.username}
+  ```
+- A username property on the Value Stack.
+  ```jsp
+  <s:textfield name="username"/>
+  ```
+- Another way to refer to a property placed on the Value Stack.
+  ```jsp
+  <s:url var="es" action="Hello">
+    <s:param name="request_locale">es</s:param>
+  </s:url>
+  <s:a href="%{es}">Espanol</s:a>
+  ```
+- A static Map, as in `put("username","trillian")`.
+  ```jsp
+  <s:property value="#session.user.username" />
+  <s:select label="FooBar" name="foo" list="#{'username':'trillian', 'username':'zaphod'}" />
+  ```
 
 ## Disallowed property names
 
 The following names of property are disallowed:
 
-+ parameters
-
-+ application
-
-+ session
-
-+ struts
-
-+ request
-
-+ servletRequest
-
-+ servletResponse
+- parameters
+- application
+- session
+- struts
+- request
+- servletRequest
+- servletResponse
 
 The below code will not work:
 
-
 ```jsp
-
 <s:iterator value="parameters"/>
-
 ```
 
-
 ```java
 
 public class MyAction {
diff --git a/source/tag-developers/template-loading.md b/source/tag-developers/template-loading.md
index 3341a7b..d1e9e76 100644
--- a/source/tag-developers/template-loading.md
+++ b/source/tag-developers/template-loading.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/text-tag.md b/source/tag-developers/text-tag.md
index d4e9efa..af86df8 100644
--- a/source/tag-developers/text-tag.md
+++ b/source/tag-developers/text-tag.md
@@ -1,11 +1,14 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: text tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # text
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
 ## Description
 
@@ -21,27 +24,18 @@
 
 For more details on using resource bundles with Struts 2 read the [localization guide](../core-developers/localization.html).
 
-## Parameters
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/text-description.html %}
 
-|__Dynamic Attributes Allowed__:|false|
+## Attributes
 
-|Name|Required|Default|Evaluated|Type|Description|Since|
-|----|--------|-------|---------|----|-----------|-----|
-|name|__true__| |false|String|Name of resource property to fetch|
-|searchValueStack|false|false|false|Boolean|Search the stack if property is not found on resources|Deprecated|
-|var|false| |false|String|Name used to reference the value pushed into the Value Stack|
-|escapeCsv|false|false|false|Boolean|Whether to escape CSV (useful to escape a value for a column)|2.5.14|
-|escapeHtml|false|false|false|Boolean|Whether to escape HTML|2.5.14|
-|escapeJavaScript|false|false|false|Boolean|Whether to escape Javascript|2.5.14|
-|escapeXml|false|false|false|Boolean|Whether to escape XML|2.5.14|
-
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/text-attributes.html %}
 
 ## Examples
 
 > Accessing messages from a given bundle (the i18n Shop example bundle in the first example) and using bundle defined 
 > through the framework in the second example.
 
-```html
+```jsp
  <!-- First Example -->
  <s:i18n name="struts.action.test.i18n.Shop">
      <s:text name="main.title"/>
@@ -54,12 +48,11 @@
  <s:text name="i18n.label.greetings">
     <s:param >Mr Smith</s:param>
  </s:text>
-
 ```
 
 ### Other example
 
-```html
+```jsp
 <s:text name="format.money"><s:param name="value" value="myMoneyValue"/></s:text>
 ```
 
@@ -79,12 +72,12 @@
 
 This will **not** work:
 
-```html
+```jsp
 <s:textfield name="lastName" label="<s:text name="person.lastName"/>" ../>
 ```
 
 Instead, you should use the `getText()` method that you inherit when your Action extends `ActionSupport`:
 
-```html
+```jsp
 <s:textfield name="lastName" label="getText('person.lastName')" ../>
 ```
diff --git a/source/tag-developers/textarea-tag.md b/source/tag-developers/textarea-tag.md
index e140f51..2bfe44e 100644
--- a/source/tag-developers/textarea-tag.md
+++ b/source/tag-developers/textarea-tag.md
@@ -1,825 +1,25 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: textarea tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # textarea
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/textarea-description.html %}
 
-__Description__
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/textarea-attributes.html %}
 
+## Example
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.TextArea {% endcomment %}
-<p> <p>Render HTML textarea tag.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.TextArea {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/textarea.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cols</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML cols attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">readonly</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether the textarea is readonly</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">rows</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML rows attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">wrap</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML wrap attribute</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/textarea.html {% endcomment %}
-
-__Example__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.TextArea {% endcomment %}
-
-```xml
- <s:textarea label="Comments" name="comments" cols="30" rows="8"/>
-
-```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.TextArea {% endcomment %}
+```jsp
+<s:textarea label="Comments" name="comments" cols="30" rows="8"/>
+```
\ No newline at end of file
diff --git a/source/tag-developers/textfield-tag.md b/source/tag-developers/textfield-tag.md
index b4a7410..b9c71a7 100644
--- a/source/tag-developers/textfield-tag.md
+++ b/source/tag-developers/textfield-tag.md
@@ -1,851 +1,28 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: textfield tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # textfield
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/textfield-description.html %}
 
-__Description__
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/textfield-attributes.html %}
 
+## Examples
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.TextField {% endcomment %}
-<p> <p>Render an HTML input field of type text</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.TextField {% endcomment %}
+In this example, a text control for the `user` property is rendered. The `label` is also retrieved from a ResourceBundle 
+via the `key` attribute.
 
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/textfield.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">maxLength</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Deprecated. Use maxlength instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">maxlength</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML maxlength attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">readonly</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether the input is readonly</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">HTML size attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">type</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">text</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Specifies the html5 type element to display. e.g. text, email, url</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/textfield.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=exdescription|lang=none|javadoc=true|url=org.apache.struts2.components.TextField {% endcomment %}
-
-```none
- In this example, a text control for the "user" property is rendered. The label is also retrieved from a ResourceBundle via the key attribute.
-
+```jsp
+<s:textfield key="user" />
 ```
-
-{% comment %}end snippet id=exdescription|lang=none|javadoc=true|url=org.apache.struts2.components.TextField {% endcomment %}
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.TextField {% endcomment %}
-
-```xml
- <s:textfield key="user" />
-
-```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.TextField {% endcomment %}
diff --git a/source/tag-developers/themes-and-templates.md b/source/tag-developers/themes-and-templates.md
index 894e33c..94258d3 100644
--- a/source/tag-developers/themes-and-templates.md
+++ b/source/tag-developers/themes-and-templates.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/token-tag.md b/source/tag-developers/token-tag.md
index 7c50467..8f2c3e9 100644
--- a/source/tag-developers/token-tag.md
+++ b/source/tag-developers/token-tag.md
@@ -1,766 +1,29 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: token tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # token
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+## Description
 
-| 
+The token tag is used to help with the _double click_ submission problem. It is needed if you are using 
+the `TokenInterceptor` or the `TokenSessionInterceptor`. The `s:token` tag merely places a hidden element that contains
+the unique token.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/token-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/token-attributes.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Token {% endcomment %}
-<p> <p>Stop double-submission of forms.</p>
+## Examples
 
- <p>
- The token tag is used to help with the "double click" submission problem. It is needed if you are using the
- TokenInterceptor or the TokenSessionInterceptor. The s:token tag merely places a hidden element that contains
- the unique token.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Token {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/token.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/token.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.Token {% endcomment %}
-
-```xml
- <s:token />
-
+```jsp
+<s:token />
 ```
-
-{% comment %}end snippet id=example|javadoc=true|lang=xml|url=org.apache.struts2.components.Token {% endcomment %}
diff --git a/source/tag-developers/ui-tags.md b/source/tag-developers/ui-tags.md
index 82cae92..1072a73 100644
--- a/source/tag-developers/ui-tags.md
+++ b/source/tag-developers/ui-tags.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/updownselect-tag.md b/source/tag-developers/updownselect-tag.md
index 1d1853e..44e65a4 100644
--- a/source/tag-developers/updownselect-tag.md
+++ b/source/tag-developers/updownselect-tag.md
@@ -1,1101 +1,54 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: updownselect tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # updownselect
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+> **NOTE**: that the `listkey` and `listvalue` attribute will default to `key` and `value` respectively only when 
+> the `list` attribute is evaluated to a Map or its descendant. Everything else will result in `listkey` and `listvalue`
+> to be null and not used.
 
-| 
+Create a Select component with buttons to move the elements in the select component up and down. When the containing
+form is submitted, its elements will be submitted in the order they are arranged (top to bottom).
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/updownselect-description.html %}
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ListUIBean {% endcomment %}
-<p> <p>
- Note that the listkey and listvalue attribute will default to "key" and "value"
- respectively only when the list attribute is evaluated to a Map or its descendant.
- Everything else will result in listkey and listvalue to be null and not used.
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.ListUIBean {% endcomment %}
+## Attributes
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/updownselect-attributes.html %}
 
+## Examples
 
+**Example 1**: simple example
 
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.UpDownSelect {% endcomment %}
-<p> <p>
- Create a Select component with buttons to move the elements in the select component
- up and down. When the containing form is submited, its elements will be submitted in
- the order they are arranged (top to bottom).
- </p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.UpDownSelect {% endcomment %}
-
-__Parameters__
-
-
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/updownselect.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">accesskey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowMoveDown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether move down button should be displayed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowMoveUp</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether move up button should be displayed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">allowSelectAll</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether or not select all button should be displayed</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">class</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error class to use for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssErrorStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css error style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">cssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">disabled</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">emptyOption</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether or not to add an empty (--) option after the header option</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">errorPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">headerValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Value expression for first item in list</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">id</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">HTML id attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">javascriptTooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">key</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">label</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelSeparator</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">:</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">String that will be appended to the label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">labelposition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">list</td>
-
-					<td align="left" valign="top"><strong>true</strong></td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css class from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listCssStyle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get css style from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listLabelKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listTitle</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get title from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValue</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field content from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">listValueKey</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Property of list objects to get field value label from</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">moveDownLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">v</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Text to display on the move down button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">moveUpLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">^</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Text to display on the move up button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">multiple</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top"> Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array or a Collection(of appropriate types) via the value attribute. If one of the keys equals one of the values in the Collection or Array it wil be selected</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">name</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The name to set for element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onblur</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onchange</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">ondblclick</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onfocus</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeydown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeypress</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onkeyup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousedown</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmousemove</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseout</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseover</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onmouseup</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">onselect</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">requiredPosition</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">selectAllLabel</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">*</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Text to display on the select all button</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">size</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Integer</td>
-
-					<td align="left" valign="top">Size of the element box (# of elements to show)</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">style</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tabindex</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">template</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">templateDir</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The template directory.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">theme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">title</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltip</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipConfig</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipCssClass</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">StrutsTTClassic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipDelay</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Classic</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">tooltipIconPath</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Preset the value of input element.</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/updownselect.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.UpDownSelect {% endcomment %}
-
-```xml
-
- <!-- Example 1: simple example -->
- <s:updownselect
- list="#{'england':'England', 'america':'America', 'germany':'Germany'}"
- name="prioritisedFavouriteCountries"
- headerKey="-1"
- headerValue="--- Please Order Them Accordingly ---"
- emptyOption="true" />
-
- <!-- Example 2: more complex example -->
- <s:updownselect
- list="defaultFavouriteCartoonCharacters"
- name="prioritisedFavouriteCartoonCharacters"
- headerKey="-1"
- headerValue="--- Please Order ---"
- emptyOption="true"
- allowMoveUp="true"
- allowMoveDown="true"
- allowSelectAll="true"
- moveUpLabel="Move Up"
- moveDownLabel="Move Down"
- selectAllLabel="Select All" />
-
-
+```jsp
+<s:updownselect
+    list="#{'england':'England', 'america':'America', 'germany':'Germany'}"
+    name="prioritisedFavouriteCountries"
+    headerKey="-1"
+    headerValue="--- Please Order Them Accordingly ---"
+    emptyOption="true" />
 ```
+ 
+**Example 2**: more complex example
 
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.UpDownSelect {% endcomment %}
+```jsp
+<s:updownselect
+    list="defaultFavouriteCartoonCharacters"
+    name="prioritisedFavouriteCartoonCharacters"
+    headerKey="-1"
+    headerValue="--- Please Order ---"
+    emptyOption="true"
+    allowMoveUp="true"
+    allowMoveDown="true"
+    allowSelectAll="true"
+    moveUpLabel="Move Up"
+    moveDownLabel="Move Down"
+    selectAllLabel="Select All" />
+```
diff --git a/source/tag-developers/url-tag.md b/source/tag-developers/url-tag.md
index ccef0da..16fba94 100644
--- a/source/tag-developers/url-tag.md
+++ b/source/tag-developers/url-tag.md
@@ -1,55 +1,41 @@
 ---
-layout: default
-title: Tag Developers Guide
+layout: tag-developers
+title: url tag
+parent:
+  title: Tag Reference
+  url: tag-reference.html
 ---
 
 # url
 
+Please make sure you have read the [Tag Syntax](tag-syntax) document and understand how tag attribute syntax works.
 
-Please make sure you have read the [Tag Syntax](tag-syntax.html) document and understand how tag attribute syntax works.
+> **NOTE**: The `id` attribute is deprecated in Struts 2.1.x, and has been replaced by the `var` attribute.
 
-| 
+## Description
 
+This tag is used to create a URL.
 
-The id attribute is deprecated in Struts 2.1.x, and has been replaced by the var attribute.
+You can use the &lt;param&gt; tag inside the body to provide additional request parameters. If the value of a param 
+is an Array or an Iterable all the values will be added to the URL.
 
-| 
+> **NOTE**: By default request parameters will be separated using escaped ampersands (i.e., &amp;). This is necessary
+> for XHTML compliance, however, when using the URL generated by this tag with the `<s:property>` tag, the **escapeAmp**
+> attribute should be used to disable ampersand escaping.
 
-__Description__
+> **NOTE**: When includeParams is `all` or `get`, the parameter defined in a `<param>` tag will take precedence over 
+> any params included due to the includeParams attribute. For example, in Example 3 below, if there is a id parameter 
+> in the url where the page this tag is included like `http://<host>:<port>/<context>/editUser.action?id=3333&name=John`
+> the generated url will be `http://<host>:<port>/<context>/editUser.action?id=22&name=John`
+> because the parameter defined in the `param` tag will take precedence
 
+### Setting a default value for `includeParams`
 
-
-{% comment %}start snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.URL {% endcomment %}
-<p>
- <p>This tag is used to create a URL.</p>
-
- <p>You can use the &lt;param&gt; tag inside the body to provide
- additional request parameters. If the value of a param is an Array or
- an Iterable all the values will be added to the URL.</p>
-
- <p><b>NOTE:</b>By default request parameters will be separated using escaped ampersands (i.e., &amp;).
- This is necessary for XHTML compliance, however, when using the URL generated by this tag
- with the &lt;s:property&gt; tag, the <b>escapeAmp</b> attribute should be used to disable
- ampersand escaping.</p>
-
- <p><b>NOTE:</b>When includeParams is 'all' or 'get', the parameter defined in a &lt;param&gt;
- tag will take precedence over any params included due to the includeParams attribute. For
- example, in Example 3 below, if there is a id parameter in the url where the page this
- tag is included like http://&lt;host&gt;:&lt;port&gt;/&lt;context&gt;/editUser.action?id=3333&name=John
- the generated url will be http://&lt;host&gt;:&lt;port&gt;/&lt;context&gt;/editUser.action?id=22&name=John
- because the parameter defined in the param tag will take precedence.</p>
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.URL {% endcomment %}
-
-__Setting a default value for includeParams__
-
-The property _struts.url.includeParams_  can be used to set the default value of the _includeParams_  attribute.
+The property `struts.url.includeParams` can be used to set the default value of the `includeParams` attribute.
 
 **Setting the default value of includeParams**
 
-
 ```xml
-
 <struts>
    ...
    <constant name="struts.url.includeParams" value="none" />
@@ -58,321 +44,31 @@
 
 ```
 
-See _Constant Configuration_  for further information.
+See [Constant Configuration](../core-developers/constant-configuration) for further information.
 
+> **NOTE**: As of Struts 2.1.3 the includeParams constant defaults to `none`. 
 
-> 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/url-description.html %}
 
-> 
+## Attributes
 
->  As of Struts 2.1.3 the includeParams constant defaults to "none". 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/url-attributes.html %}
 
-> 
+## Examples
 
-__Parameters__
+```jsp
+<!-- Example 1 -->
+<s:url value="editGadget.action">
+    <s:param name="id" value="%{selected}" />
+</s:url>
 
+<!-- Example 2 -->
+<s:url action="editGadget">
+    <s:param name="id" value="%{selected}" />
+</s:url>
 
-
-{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/url.html {% endcomment %}
-<p>		<table width="100%">
-
-			<tr>
-
-				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
-
-			</tr>
-
-			<tr>
-
-				<td colspan="6">&nbsp;</td>
-
-			</tr>
-
-			<tr>
-
-				<th align="left" valign="top"><h4>Name</h4></th>
-
-				<th align="left" valign="top"><h4>Required</h4></th>
-
-				<th align="left" valign="top"><h4>Default</h4></th>
-
-				<th align="left" valign="top"><h4>Evaluated</h4></th>
-
-				<th align="left" valign="top"><h4>Type</h4></th>
-
-				<th align="left" valign="top"><h4>Description</h4></th>
-
-			</tr>
-
-				<tr>
-
-					<td align="left" valign="top">action</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The action to generate the URL for, if not using value</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">anchor</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The anchor for this URL</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">encode</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether to encode parameters</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">escapeAmp</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Specifies whether to escape ampersand (&amp;) to (&amp;amp;) or not</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">forceAddSchemeHostAndPort</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Specifies whether to force the addition of scheme, host and port or not</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">includeContext</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">true</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">Boolean</td>
-
-					<td align="left" valign="top">Whether actual context should be included in URL</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">includeParams</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">none</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The includeParams attribute may have the value 'none', 'get' or 'all'</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">method</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The method of action to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">namespace</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The namespace to use</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">portletMode</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The resulting portlet mode</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">portletUrlType</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Specifies if this should be a portlet render or action URL. Default is "render". To create an action URL, use "action".</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">scheme</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Set scheme attribute</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">value</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The target value to use, if not using action</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">var</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">Name used to reference the value pushed into the Value Stack</td>
-
-				</tr>
-
-				<tr>
-
-					<td align="left" valign="top">windowState</td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top"></td>
-
-					<td align="left" valign="top">false</td>
-
-					<td align="left" valign="top">String</td>
-
-					<td align="left" valign="top">The resulting portlet window state</td>
-
-				</tr>
-
-		</table>
-
-</p>
-{% comment %}end snippet id=tagattributes|javadoc=false|url=struts2-tags/url.html {% endcomment %}
-
-__Examples__
-
-
-
-{% comment %}start snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.URL {% endcomment %}
-
-```xml
-
- <!-- Example 1 -->
- <s:url value="editGadget.action">
-     <s:param name="id" value="%{selected}" />
- </s:url>
-
- <!-- Example 2 -->
- <s:url action="editGadget">
-     <s:param name="id" value="%{selected}" />
- </s:url>
-
- <!-- Example 3-->
- <s:url includeParams="get">
-     <s:param name="id" value="%{'22'}" />
- </s:url>
-
-
+<!-- Example 3-->
+<s:url includeParams="get">
+    <s:param name="id" value="%{'22'}" />
+</s:url>
 ```
-
-{% comment %}end snippet id=example|lang=xml|javadoc=true|url=org.apache.struts2.components.URL {% endcomment %}
diff --git a/source/tag-developers/velocity-tags.md b/source/tag-developers/velocity-tags.md
index 3d287d8..be8bcf3 100644
--- a/source/tag-developers/velocity-tags.md
+++ b/source/tag-developers/velocity-tags.md
@@ -1,43 +1,38 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
 # Velocity Tags
 
-Velocity tags are extensions of the generic [Struts Tags](struts-tags.html) provided by the framework. You can get jump right in just by knowing the structure in which the tags can be accessed: **#s\*****tag** **\*(...) ... #end**, where **tag**  is any of the [Struts Tags](struts-tags.html) supported by the framework.
+Velocity tags are extensions of the generic [Struts Tags](struts-tags) provided by the framework. You can get jump
+right in just by knowing the structure in which the tags can be accessed: `#s<tag> (...)`, 
+where **tag** is any of the [Struts Tags](struts-tags) supported by the framework.
 
 For example, in JSP you might create a form using Struts tags.
 
 **JSP Form**
 
-
 ```jsp
-
 <s:form action="updatePerson">
     <s:textfield label="First name" name="firstName"/>
     <s:submit value="Update"/>
 </s:form>
-
 ```
 
 In Velocity, the same form can also be built using macros.
 
 **VM Form**
 
-
-~~~~~~~
-
+```
 #sform ("action=updatePerson")
     #stextfield ("label=First name" "name=firstName")
     #ssubmit ("value=Update")
 #end
-
-~~~~~~~
+```
 
 ## Block and Inline Tags
 
-Some VM tags require an #end statement while others do not. The inconsistency arises from a limitation in Velocity where tags must declare if they are a _block_  or _inline_  tag up front. As such, by default all tags are _inline_  except for a few key ones, such as the [form](form-tag.html) tag.
-
-## Back To:
-
+Some VM tags require an #end statement while others do not. The inconsistency arises from a limitation in Velocity 
+where tags must declare if they are a _block_ or _inline_ tag up front. As such, by default all tags are _inline_ 
+except for a few key ones, such as the [form](form-tag.html) tag.
diff --git a/source/tag-developers/velocity.md b/source/tag-developers/velocity.md
index 79a48ad..4e2d92e 100644
--- a/source/tag-developers/velocity.md
+++ b/source/tag-developers/velocity.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 ---
 
diff --git a/source/tag-developers/xhtml-theme.md b/source/tag-developers/xhtml-theme.md
index 415524b..1b787b8 100644
--- a/source/tag-developers/xhtml-theme.md
+++ b/source/tag-developers/xhtml-theme.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: tag-developers
 title: Tag Developers Guide
 parent:
   url: themes-and-templates.html