Cleans up and reformats docs
diff --git a/source/tag-developers/a-tag.md b/source/tag-developers/a-tag.md
index 41185d0..6a88524 100644
--- a/source/tag-developers/a-tag.md
+++ b/source/tag-developers/a-tag.md
@@ -15,7 +15,7 @@
 A tag that creates a HTML `<a>.` This tag supports the same attributes as the `url` tag, including nested parameters 
 using the `param` tag.
  
-## Parameters
+## Attributes
 
 {% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/a-attributes.html %}
 
diff --git a/source/tag-developers/action-tag.md b/source/tag-developers/action-tag.md
index 8c9d777..b66fea8 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,18 @@
 ```
 
 Will print:
-
+```
 Is "myAction" null inside the tag? true
 
 Is "myAction" null outside the tag? false
+```
 
-## Parameters
+## Attributes
 
-{% comment %}start snippet id=tagattributes|struts2-tags/action.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">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 +56,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 +66,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/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/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/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/doubleselect-tag.md b/source/tag-developers/doubleselect-tag.md
index 69fce3f..129e27d 100644
--- a/source/tag-developers/doubleselect-tag.md
+++ b/source/tag-developers/doubleselect-tag.md
@@ -1,1509 +1,32 @@
 ---
-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
 
+Renders two HTML select elements with second one changing displayed values depending on selected entry of first one.
 
-{% 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>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/doubleselect-description.html %}
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.DoubleListUIBean {% endcomment %}
+## Attributes
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/doubleselect-attributes.html %}
 
+## 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/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..96cb44f 100644
--- a/source/tag-developers/file-tag.md
+++ b/source/tag-developers/file-tag.md
@@ -1,794 +1,28 @@
 ---
-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
 
-| 
+Renders an HTML file input element.
 
-__Description__
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/file-description.html %}
 
+## Attributes
 
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/file-attributes.html %}
 
-{% 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 %}
+## Examples
 
-__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..84a5c68 100644
--- a/source/tag-developers/form-tag.md
+++ b/source/tag-developers/form-tag.md
@@ -1,1019 +1,45 @@
 ---
-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
 
-| 
+Renders HTML an input form.
 
-__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>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/form-description.html %}
 
- <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>
+## Attributes
 
- <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>
+{% remote_file_content https://raw.githubusercontent.com/apache/struts/master/core/src/site/resources/tags/form-attributes.html %}
 
-</p>
-{% comment %}end snippet id=javadoc|javadoc=true|url=org.apache.struts2.components.Form {% endcomment %}
+## Examples
 
-__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.