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

lukaszlenart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts-site.git
commit 1c8bdd73337e88886bf501d7c812401966137c11
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Fri Oct 27 17:38:09 2017 +0200

    Cleans up all interceptors' pages
---
 source/core-developers/alias-interceptor.md        |  54 ++----
 source/core-developers/chaining-interceptor.md     | 116 ++++---------
 source/core-developers/checkbox-interceptor.md     |  65 ++------
 .../conversion-error-interceptor.md                |  80 ++-------
 source/core-developers/cookie-interceptor.md       | 112 ++++---------
 source/core-developers/debugging-interceptor.md    |  60 ++-----
 .../default-workflow-interceptor.md                | 105 ++++--------
 source/core-developers/exception-interceptor.md    |  84 +++-------
 .../execute-and-wait-interceptor.md                | 116 +++++--------
 source/core-developers/file-upload-interceptor.md  | 143 ++++------------
 source/core-developers/i18n-interceptor.md         |  41 +++--
 source/core-developers/interceptors.md             |  10 +-
 ...ogger-interceptor.md => logging-interceptor.md} |   0
 .../core-developers/message-store-interceptor.md   |  81 ++++-----
 source/core-developers/model-driven-interceptor.md |   5 +-
 source/core-developers/multiselect-interceptor.md  |  39 ++---
 source/core-developers/no-op-interceptor.md        |  19 +--
 .../parameter-filter-interceptor.md                |  77 +++------
 source/core-developers/prepare-interceptor.md      |  98 +++--------
 source/core-developers/roles-interceptor.md        |  45 ++---
 source/core-developers/scope-interceptor.md        | 181 ++++++++-------------
 .../scoped-model-driven-interceptor.md             |  59 ++-----
 .../core-developers/servlet-config-interceptor.md  |  85 +++-------
 .../static-parameters-interceptor.md               |  49 ++----
 source/core-developers/timer-interceptor.md        |  52 ++----
 source/core-developers/token-interceptor.md        |  88 +++-------
 .../core-developers/token-session-interceptor.md   |  63 ++-----
 source/core-developers/validation-interceptor.md   |  89 +++-------
 28 files changed, 574 insertions(+), 1442 deletions(-)

diff --git a/source/core-developers/alias-interceptor.md 
b/source/core-developers/alias-interceptor.md
index a49718a..1940fc9 100644
--- a/source/core-developers/alias-interceptor.md
+++ b/source/core-developers/alias-interceptor.md
@@ -1,59 +1,30 @@
 ---
-layout: core-developers
+layout: default
 title: Alias Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Alias Interceptor
 
+The aim of this Interceptor is to alias a named parameter to a different named 
parameter. By acting as the glue between 
+actions sharing similar parameters (but with different names), it can help 
greatly with action chaining.
 
-
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.AliasInterceptor
 {% endcomment %}
-<p>
- The aim of this Interceptor is to alias a named parameter to a different 
named parameter. By acting as the glue
- between actions sharing similar parameters (but with different names), it can 
help greatly with action chaining.
-
- <p>Action's alias expressions should be in the form of  <code>#{ "name1" : 
"alias1", "name2" : "alias2" }</code>.
- This means that assuming an action (or something else in the stack) has a 
value for the expression named <i>name1</i> and the
- action this interceptor is applied to has a setter named <i>alias1</i>, 
<i>alias1</i> will be set with the value from
- <i>name1</i>.
- </p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.AliasInterceptor
 {% endcomment %}
+Action's alias expressions should be in the form of `#{ "name1" : "alias1", 
"name2" : "alias2" }`. This means that assuming 
+an action (or something else in the stack) has a value for the expression 
named `name1` and the action this interceptor 
+is applied to has a setter named `alias1`, `alias1` will be set with the value 
from `name1`.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.AliasInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>aliasesKey (optional) - the name of the action parameter to look for the 
alias map (by default this is
- <i>aliases</i>).</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.AliasInterceptor
 {% endcomment %}
+ - `aliasesKey` (optional) - the name of the action parameter to look for the 
alias map (by default this is aliases
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.AliasInterceptor
 {% endcomment %}
-<p>
- This interceptor does not have any known extension points.
-
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.AliasInterceptor
 {% endcomment %}
+This interceptor does not have any known extension points.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.AliasInterceptor
 {% endcomment %}
-
 ```xml
  <action name="someAction" class="com.examples.SomeAction">
      <!-- The value for the foo parameter will be applied as if it were named 
bar -->
@@ -63,7 +34,4 @@ title: Alias Interceptor
      <interceptor-ref name="basicStack"/>
      <result name="success">good_result.ftl</result>
  </action>
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.AliasInterceptor
 {% endcomment %}
diff --git a/source/core-developers/chaining-interceptor.md 
b/source/core-developers/chaining-interceptor.md
index 8c81a8b..0906cd8 100644
--- a/source/core-developers/chaining-interceptor.md
+++ b/source/core-developers/chaining-interceptor.md
@@ -1,109 +1,56 @@
 ---
-layout: core-developers
+layout: default
 title: Chaining Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Chaining Interceptor
 
 ## Description
 
-An interceptor that copies all the properties of every object in the value 
stack to the currently executing object, except for any object that implements 
[Unchainable](http://struts\.apache\.org/maven/xwork\-core/apidocs/com/opensymphony/xwork2/Unchainable\.html)^[http://struts\.apache\.org/maven/xwork\-core/apidocs/com/opensymphony/xwork2/Unchainable\.html]\.
 A collection of optional 
+An interceptor that copies all the properties of every object in the value 
stack to the currently executing object, 
+except for any object that implements 
[Unchainable](/maven/struts2-core/apidocs/com/opensymphony/xwork2/Unchainable.html).
 
+A collection of optional `includes` and `excludes` may be provided to control 
how and which parameters are copied. 
+Only `includes` or `excludes` may be specified. Specifying both results in 
undefined behavior. See the JavaDocs 
+for [ReflectionProvider#copy(Object, Object, java.util.Map, 
java.util.Collection, 
java.util.Collection)](/maven/struts2-core/apidocs/com/opensymphony/xwork2/util/reflection/ReflectionProvider.html#copy(java.lang.Object,
 java.lang.Object, java.util.Map, java.util.Collection, java.util.Collection))
+for more information.
 
-~~~~~~~
-includes
-~~~~~~~
- and 
+> It is important to remember that this interceptor does nothing if there are 
no objects already on the stack. 
+> This means two things:
+> 1. you can safely apply it to all your actions without any worry of adverse 
affects.
+> 2. it is up to you to ensure an object exists in the stack prior to invoking 
this action. The most typical way this 
+>   is done is through the use of the <b>chain</b> result type, which combines 
with this interceptor to make up the action 
+>   chaining feature.
 
-~~~~~~~
-excludes
-~~~~~~~
- may be provided to control how and which parameters are copied\. Only 
+By default Errors, Field errors and Message aren't copied during chaining, to 
change the behaviour you can specify 
+the below three constants in struts.properties or struts.xml:
 
-~~~~~~~
-includes
-~~~~~~~
- or 
+ - `struts.xwork.chaining.copyErrors` - set to true to copy Action Errors
+ - `struts.xwork.chaining.copyFieldErrors` - set to true to copy Field Errors
+ - `struts.xwork.chaining.copyMessages` - set to true to copy Action Messages
 
-~~~~~~~
-excludes
-~~~~~~~
- may be specified\. Specifying both results in undefined behavior\. See the 
javadocs for [ReflectionProvider\#copy(Object, Object, java\.util\.Map, 
java\.util\.Collection, 
java\.util\.Collection)](http://struts\.apache\.org/maven/xwork\-core/apidocs/com/opensymphony/xwork2/util/reflection/ReflectionProvider\.html\#copy(java\.lang\.Object,
 java\.lang\.Object, java\.util\.Map, java\.util\.Collection, 
java\.util\.Collection))^[http://struts\.apache\.org/maven/xwork\-core/apidocs/com/opensym
 [...]
+### Example
 
-
-
-| It is important to remember that this interceptor does nothing if there are 
no objects already on the stack\. This means two things:
-
-| 
-
-| 
-
-| 1. you can safely apply it to all your actions without any worry of adverse 
affects.
-
-| 
-
-| 2. it is up to you to ensure an object exists in the stack prior to invoking 
this action. The most typical way this is done is through the use of the 
<b>chain</b> result type, which combines with this interceptor to make up the 
action chaining feature.
-
-| 
-
-| 
-
- By default Errors, Field errors and Message aren't copied during chaining, to 
change the behaviour you can specify the below three constants in 
struts\.properties or struts\.xml:
-
-+ 
-
-~~~~~~~
-struts.xwork.chaining.copyErrors
-~~~~~~~
-  \- set to true to copy Action Errors
-
-+ 
-
-~~~~~~~
-struts.xwork.chaining.copyFieldErrors
-~~~~~~~
-  \- set to true to copy Field Errors
-
-+ 
-
-~~~~~~~
-struts.xwork.chaining.copyMessages
-~~~~~~~
-  \- set to true to copy Action Messages
-
-__Example:__
-
-
-
-~~~~~~~
+```xml
 <constant name="struts.xwork.chaining.copyErrors" value="true"/>
-~~~~~~~
+```
 
 ## Parameters
 
-+ 
-
-~~~~~~~
-excludes
-~~~~~~~
-  (optional) \- the list of parameter names to exclude from copying (all 
others will be included)
-
-+ 
-
-~~~~~~~
-includes
-~~~~~~~
- (optional) \- the list of parameter names to include when copying (all others 
will be excluded)
+ - `excludes` (optional) - the list of parameter names to exclude from copying 
(all others will be included)
+ - `includes` (optional) - the list of parameter names to include when copying 
(all others will be excluded)
 
 ## Extending the Interceptor
 
-There are no known extension points to this interceptor\.
+There are no known extension points to this interceptor.
 
 ## Examples
 
 Simple example how to chain two actions
 
-
-~~~~~~~
+```xml
 <action name="someAction" class="com.examples.SomeAction">
     <interceptor-ref name="basicStack"/>
        <result name="success" type="chain">otherAction</result>
@@ -114,12 +61,11 @@ Simple example how to chain two actions
        <interceptor-ref name="basicStack"/>
        <result name="success">good_result.ftl</result>
 </action>
-~~~~~~~
+```
 
 This examples chains two actions but only one property from first action is 
copied to another
 
-
-~~~~~~~
+```xml
 <action name="someAction" class="com.examples.SomeAction">
     <interceptor-ref name="basicStack"/>
        <result name="success" type="chain">otherAction</result>
@@ -131,4 +77,4 @@ This examples chains two actions but only one property from 
first action is copi
        </interceptor-ref>
        <result name="success">good_result.ftl</result>
 </action>
-~~~~~~~
+```
diff --git a/source/core-developers/checkbox-interceptor.md 
b/source/core-developers/checkbox-interceptor.md
index 4bd1fd2..a3e1857 100644
--- a/source/core-developers/checkbox-interceptor.md
+++ b/source/core-developers/checkbox-interceptor.md
@@ -1,65 +1,26 @@
 ---
-layout: core-developers
+layout: default
 title: Checkbox Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Checkbox Interceptor
 
+This interceptor is  defined in the `defaultStack`. It checks each form 
parameter submitted  to the action and if it 
+finds one with a prefix of `_checkbox` it inserts a value for a parameter 
whose name is derived from the suffix 
+to `_checkbox` if it does not exist. The default value inserted is `false` but 
this can be changed by setting 
+the `uncheckedValue` parameter on the interceptor.
 
-
-~~~~~~~
-org.apache.struts2.interceptor.CheckboxInterceptor
-~~~~~~~
- is in the 
-
-~~~~~~~
-defaultStack
-~~~~~~~
-\. It checks each form parameter submitted to the action and if it finds one 
with a prefix of 
-
-~~~~~~~
-_checkbox
-~~~~~~~
- it inserts a value for a parameter whose name is derived from the suffix to 
-
-~~~~~~~
-_checkbox
-~~~~~~~
- if it does not exist\. The default value inserted is 
-
-~~~~~~~
-false
-~~~~~~~
- but this can be changed by setting the 
-
-~~~~~~~
-uncheckedValue
-~~~~~~~
- parameter on the interceptor\.
-
-This means that a checkbox can be accompanied by a hidden input with the same 
name but a prefix of 
-
-~~~~~~~
-_checkbox
-~~~~~~~
- so that if the checkbox is not checked on the form the action will still 
receive a value rather than the default HTML action of not providing a value 
for unchecked checkboxes\.
+This means that a checkbox can be accompanied by a hidden input with the same 
name but a prefix of `_checkbox` so that 
+if the checkbox is not checked on the form the action will still receive a 
value rather than the default HTML action 
+of not providing a value for unchecked checkboxes.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.CheckboxInterceptor
 {% endcomment %}
-<p> <ul>
- <li>setUncheckedValue - The default value of an unchecked box can be 
overridden by setting the 'uncheckedValue' property.</li>
- </ul>
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.CheckboxInterceptor
 {% endcomment %}
+ - `uncheckedValue` - the default value of an unchecked box can be overridden 
by setting the `uncheckedValue` property.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.CheckboxInterceptor
 {% endcomment %}
-<p>
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.CheckboxInterceptor
 {% endcomment %}
+This interceptor does not have any known extension points.
diff --git a/source/core-developers/conversion-error-interceptor.md 
b/source/core-developers/conversion-error-interceptor.md
index 98d057f..6136512 100644
--- a/source/core-developers/conversion-error-interceptor.md
+++ b/source/core-developers/conversion-error-interceptor.md
@@ -1,87 +1,43 @@
 ---
-layout: core-developers
+layout: default
 title: Conversion Error Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Conversion Error Interceptor
 
-The Struts 2 conversion error interceptor is a subclass of the XWork 2 
conversion error interceptor\.
+Conversion Error Interceptor adds conversion errors from the ActionContext to 
the Action's field errors.
 
-From the Javadocs of the XWork 2 interceptor:
-
-
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor
 {% endcomment %}
-<p> ConversionErrorInterceptor adds conversion errors from the ActionContext 
to the Action's field errors.
-
- <p>
- This interceptor adds any error found in the {@link ActionContext}'s 
conversionErrors map as a field error (provided
- that the action implements {@link ValidationAware}). In addition, any field 
that contains a validation error has its
- original value saved such that any subsequent requests for that value return 
the original value rather than the value
- in the action. This is important because if the value "abc" is submitted and 
can't be converted to an int, we want to
- display the original string ("abc") again rather than the int value (likely 
0, which would make very little sense to
- the user).
- </p>
+This interceptor adds any error found in the {@link ActionContext}'s 
conversionErrors map as a field error (provided that 
+the action implements `ValidationAware`). In addition, any field that contains 
a validation error has its original value 
+saved such that any subsequent requests for that value return the original 
value rather than the value in the action. 
+This is important because if the value "abc" is submitted and can't be 
converted to an int, we want to display the original 
+string ("abc") again rather than the int value (likely 0, which would make 
very little sense to the user).
  
- <p>
- <b>Note:</b> Since 2.5.2, this interceptor extends {@link 
MethodFilterInterceptor}, therefore being
- able to deal with excludeMethods / includeMethods parameters. See [Workflow 
Interceptor]
- (class {@link DefaultWorkflowInterceptor}) for documentation and examples on 
how to use this feature.
- </p>
- 
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor
 {% endcomment %}
-
-From the Javadocs of the Struts 2 interceptor:
+> Note: Since 2.5.2, this interceptor extends `MethodFilterInterceptor`, 
therefore being able to deal with `excludeMethods` 
+> / `includeMethods` parameters. See [Workflow 
Interceptor](default-workflow-interceptor.html) for documentation and 
+> examples on how to use this feature.
 
-
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
 {% endcomment %}
-<p> <p>
- This interceptor extends {@link ConversionErrorInterceptor} but only adds 
conversion errors from the ActionContext to
- the field errors of the action if the field value is not null, "", or {""} (a 
size 1 String array with only an empty
- String). See {@link ConversionErrorInterceptor} for more information, as well 
as the Type Conversion documentation.
- </p>
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
 {% endcomment %}
+This interceptor extends `ConversionErrorInterceptor` but only adds conversion 
errors from the ActionContext to the field 
+errors of the action if the field value is not null, `""`, or `{""}` (a size 1 
String array with only an empty String). 
+See `ConversionErrorInterceptor` for more information, as well as the Type 
Conversion documentation.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>None</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
 {% endcomment %}
+There are no parameters for this interceptor.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
 {% endcomment %}
-<p> <p>
- There are no known extension points for this interceptor.
- </p>
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
 {% endcomment %}
+There are no known extension points for this interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
 {% endcomment %}
-
 ```xml
  <action name="someAction" class="com.examples.SomeAction">
      <interceptor-ref name="params"/>
      <interceptor-ref name="conversionError"/>
      <result name="success">good_result.ftl</result>
  </action>
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
 {% endcomment %}
diff --git a/source/core-developers/cookie-interceptor.md 
b/source/core-developers/cookie-interceptor.md
index 167a300..6381b4f 100644
--- a/source/core-developers/cookie-interceptor.md
+++ b/source/core-developers/cookie-interceptor.md
@@ -1,98 +1,49 @@
 ---
-layout: core-developers
+layout: default
 title: Cookie Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Cookie Interceptor
 
+The aim of this interceptor is to set values in the stack/action based on 
cookie name/value of interest.
 
+If an asterisk is present in `cookiesName` parameter, it will be assume that 
all cookies name are to be injected into 
+struts' action, even though `cookiesName` is comma-separated by other values, 
e.g. `(cookie1,*,cookie2)`.
 
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.CookieInterceptor
 {% endcomment %}
-<p>
- <p>
- The aim of this interceptor is to set values in the stack/action based on 
cookie name/value
- of interest.
- </p>
+If `cookiesName` is left empty it will assume that no cookie will be injected 
into Struts' action.
+ 
+If an asterisk is present in `cookiesValue` parameter, it will assume that all 
cookies name irrespective of its value 
+will be injected into Struts' action so long as the cookie name matches those 
specified in `cookiesName` parameter.
 
- <p>
- If an asterisk is present in cookiesName parameter, it will be assume that
- all cookies name are to be injected into struts' action, even though
- cookiesName is comma-separated by other values, e.g. (cookie1,*,cookie2).
- </p>
+If `cookiesValue` is left empty it will assume that all cookie that match the 
`cookieName` parameter will be injected 
+into Struts' action.
 
- <p>
- If cookiesName is left empty it will assume that no cookie will be injected
- into Struts' action.
- </p>
+The action could implement `CookiesAware` in order to have a `Map` of filtered 
cookies set into it.
 
- <p>
- If an asterisk is present in cookiesValue parameter, it will assume that all
- cookies name irrespective of its value will be injected into Struts' action so
- long as the cookie name matches those specified in cookiesName parameter.
- </p>
+## Parameters
 
- <p>
- If cookiesValue is left empty it will assume that all cookie that match the 
cookieName
- parameter will be injected into Struts' action.
- </p>
+ - `cookiesName` (mandatory) - Name of cookies to be injected into the action. 
If more than one cookie name is desired 
+   it could be comma-separated. If all cookies name is desired, it could 
simply be *, an asterisk. When many cookies 
+   name are comma-separated either of the cookie that match the name in the 
comma-separated list will be qualified.
+ - `cookiesValue` (mandatory) - Value of cookies that if its name matches 
cookieName attribute and its value matched 
+   this, will be injected into Struts' action. If more than one cookie name is 
desired it could be comma-separated. 
+   If left empty, it will assume any value would be ok. If more than one value 
is specified (comma-separated) it will 
+   assume a match if either value is matched.
+ - `acceptCookieNames` (optional) - Pattern used to check if name of cookie 
matches the provided pattern.
 
- <p>
- The action could implement {@link CookiesAware} in order to have a {@link Map}
- of filtered cookies set into it.
- </p>
+## Extending the Interceptor
 
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.CookieInterceptor
 {% endcomment %}
+ - `populateCookieValueIntoStack` - this method will decide if this cookie 
value is qualified to be populated into 
+   the value stack (hence into the action itself)
+ - `injectIntoCookiesAwareAction` - this method will inject selected cookies 
(as a `java.util.Map`) into action 
+   that implements `CookiesAware`.
 
-Parameters
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.CookieInterceptor 
{% endcomment %}
-<p>
- <ul>
-      <li>cookiesName (mandatory) - Name of cookies to be injected into the 
action. If more
-                                                                 than one 
cookie name is desired it could be comma-separated.
-                                                                 If all 
cookies name is desired, it could simply be *, an asterik.
-                                                                 When many 
cookies name are comma-separated either of the cookie
-                                                        that match the name in 
the comma-separated list will be qualified.</li>
-     <li>cookiesValue (mandatory) - Value of cookies that if its name matches 
cookieName attribute
-                                                         and its value matched 
this, will be injected into Struts'
-                                                         action. If more than 
one cookie name is desired it could be
-                                                         comma-separated. If 
left empty, it will assume any value would
-                                                         be ok. If more than 
one value is specified (comma-separated)
-                                                         it will assume a 
match if either value is matched.</li>
-     <li>acceptCookieNames (optional) - Pattern used to check if name of 
cookie matches the provided patter, to </li>
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.CookieInterceptor 
{% endcomment %}
-
-Extending the Interceptor
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.CookieInterceptor 
{% endcomment %}
-<p>
- <ul>
-     <li>
-         populateCookieValueIntoStack - this method will decide if this cookie 
value is qualified
-         to be populated into the value stack (hence into the action itself)
-     </li>
-     <li>
-         injectIntoCookiesAwareAction - this method will inject selected 
cookies (as a java.util.Map)
-         into action that implements {@link CookiesAware}.
-     </li>
- </ul>
-
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.CookieInterceptor 
{% endcomment %}
-
-Examples
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.CookieInterceptor
 {% endcomment %}
+## Examples
 
 ```xml
-
  <!--
    This example will inject cookies named either 'cookie1' or 'cookie2' whose
    value could be either 'cookie1value' or 'cookie2value' into Struts' action.
@@ -105,7 +56,6 @@ Examples
     ....
  </action>
 
-
  <!--
       This example will inject cookies named either 'cookie1' or 'cookie2'
      regardless of their value into Struts' action.
@@ -118,7 +68,6 @@ Examples
    ...
  </action>
 
-
  <!--
       This example will inject cookies named either 'cookie1' with value
       'cookie1value' or 'cookie2' with value 'cookie2value' into Struts'
@@ -148,7 +97,4 @@ Examples
     ...
  </action>
 
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.CookieInterceptor
 {% endcomment %}
diff --git a/source/core-developers/debugging-interceptor.md 
b/source/core-developers/debugging-interceptor.md
index 9cb0e17..a3692bb 100644
--- a/source/core-developers/debugging-interceptor.md
+++ b/source/core-developers/debugging-interceptor.md
@@ -1,55 +1,27 @@
 ---
-layout: core-developers
-title: DebuggingInterceptor
+layout: default
+title: Debugging Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
-# DebuggingInterceptor
+# Debugging Interceptor
 
+Provides several different debugging screens to provide insight into the data 
behind the page.
 
-
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.debugging.DebuggingInterceptor
 {% endcomment %}
-<p> <p>
- Provides several different debugging screens to provide insight into the
- data behind the page.
- </p>
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.debugging.DebuggingInterceptor
 {% endcomment %}
-
-
-{% comment %}start snippet 
id=remarks|javadoc=true|url=org.apache.struts2.interceptor.debugging.DebuggingInterceptor
 {% endcomment %}
-<p> This interceptor only is activated when devMode is enabled in
- struts.properties. The 'debug' parameter is removed from the parameter list
- before the action is executed. All operations occur before the natural
- Result has a chance to execute.
-</p>
-{% comment %}end snippet 
id=remarks|javadoc=true|url=org.apache.struts2.interceptor.debugging.DebuggingInterceptor
 {% endcomment %}
+This interceptor only is activated when `devMode` is enabled in `struts.xml`. 
The `debug` parameter is removed from 
+the parameter list before the action is executed. All operations occur before 
the natural Result has a chance to execute.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.debugging.DebuggingInterceptor
 {% endcomment %}
-<p> <ul>
- <li> <code>xml</code> - Dumps the parameters, context, session, and value
- stack as an XML document.</li>
- <li> <code>console</code> - Shows a popup 'OGNL Console' that allows the
- user to test OGNL expressions against the value stack. The XML data from
- the 'xml' mode is inserted at the top of the page.</li>
- <li> <code>command</code> - Tests an OGNL expression and returns the
- string result. Only used by the OGNL console.</li>
- <li><code>browser</code> Shows field values of an object specified in the 
- <code>object</code> parameter (#context by default). When the 
<code>object</code>
- parameters is set, the '#' character needs to be escaped to '%23'. Like
- debug=browser&object=%23parameters</li>
- </ul>
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.debugging.DebuggingInterceptor
 {% endcomment %}
+ - `xml` - Dumps the parameters, context, session, and value stack as an XML 
document.
+ - `console` - Shows a popup 'OGNL Console' that allows the user to test OGNL 
expressions against the value stack. 
+   The XML data from the `xml` mode is inserted at the top of the page.
+ - `command` - Tests an OGNL expression and returns the string result. Only 
used by the OGNL console.
+ - `browser` Shows field values of an object specified in the `object` 
parameter (`#context` by default). 
+   When the `object` parameters is set, the `#` character needs to be escaped 
to `%23`. Like `debug=browser&object=%23parameters`
 
 ## Example
 
-
-
-{% comment %}start snippet 
id=example|javadoc=true|url=org.apache.struts2.interceptor.debugging.DebuggingInterceptor
 {% endcomment %}
-<p>  http://localhost:8080/Welcome.action?debug=xml
-</p>
-{% comment %}end snippet 
id=example|javadoc=true|url=org.apache.struts2.interceptor.debugging.DebuggingInterceptor
 {% endcomment %}
+http://localhost:8080/Welcome.action?debug=xml
diff --git a/source/core-developers/default-workflow-interceptor.md 
b/source/core-developers/default-workflow-interceptor.md
index 9317762..e9d4d4b 100644
--- a/source/core-developers/default-workflow-interceptor.md
+++ b/source/core-developers/default-workflow-interceptor.md
@@ -1,97 +1,52 @@
 ---
-layout: core-developers
+layout: default
 title: Default Workflow Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Default Workflow Interceptor
 
+An interceptor that makes sure there are not validation, conversion or action 
errors before allowing the interceptor 
+chain to continue. If a single FieldError or ActionError (including the ones 
replicated by the Message Store Interceptor 
+in a redirection) is found, the INPUT result will be triggered.
 
+This interceptor does not perform any validation.
 
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
 {% endcomment %}
-<p> <p>
- An interceptor that makes sure there are not validation, conversion or action 
errors before allowing the interceptor chain to continue. 
- If a single FieldError or ActionError (including the ones replicated by the 
Message Store Interceptor in a redirection) is found, the INPUT result will be 
triggered.
- <b>This interceptor does not perform any validation</b>.
- </p>
+This interceptor does nothing if the name of the method being invoked is 
specified in the `excludeMethods` parameter. 
+`excludeMethods` accepts a comma-delimited list of method names. For example, 
requests to `foo!input.action` and 
+`foo!back.action` will be skipped by this interceptor if you set the 
`excludeMethods` parameter to `input, back`.
 
- <p>
- This interceptor does nothing if the name of the method being invoked is 
specified in the <b>excludeMethods</b>
- parameter. <b>excludeMethods</b> accepts a comma-delimited list of method 
names. For example, requests to
- <b>foo!input.action</b> and <b>foo!back.action</b> will be skipped by this 
interceptor if you set the
- <b>excludeMethods</b> parameter to "input, back".
- </p>
+> Note: As this method extends off MethodFilterInterceptor, it is capable of 
deciding if it is applicable only to selective 
+> methods in the action class. This is done by adding param tags for the 
interceptor element, naming either a list of excluded 
+> method names and/or a list of included method names, whereby 
`includeMethods` overrides `excludedMethods`. A single * 
+> sign is interpreted as wildcard matching all methods for both parameters. 
`MethodFilterInterceptor` for more info.
 
- <p>
- <b>Note:</b> As this method extends off MethodFilterInterceptor, it is 
capable of
- deciding if it is applicable only to selective methods in the action class. 
This is done by adding param tags
- for the interceptor element, naming either a list of excluded method names 
and/or a list of included method
- names, whereby includeMethods overrides excludedMethods. A single * sign is 
interpreted as wildcard matching
- all methods for both parameters.
- See {@link MethodFilterInterceptor} for more info.
- </p>
-
- <p>
- This interceptor also supports the following interfaces which can implemented 
by actions:
- </p>
-
- <ul>
-     <li>ValidationAware - implemented by ActionSupport class</li>
-     <li>ValidationWorkflowAware - allows changing result name 
programmatically</li>
-     <li>ValidationErrorAware - notifies action about errors and also allow 
change result name</li>
- </ul>
-
- <p>
- You can also use InputConfig annotation to change result name returned when 
validation errors occurred.
- </p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
 {% endcomment %}
-
-
-{% comment %}start snippet 
id=javadocDefaultWorkflowInterceptor|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil
 {% endcomment %}
-<p> 
- <b>In DefaultWorkflowInterceptor</b>
- <p>applies only when action implements {@link 
com.opensymphony.xwork2.Validateable}</p>
- <ol>
-    <li>if the action class have validate{MethodName}(), it will be 
invoked</li>
-    <li>else if the action class have validateDo{MethodName}(), it will be 
invoked</li>
-    <li>no matter if 1] or 2] is performed, if alwaysInvokeValidate property 
of the interceptor is "true" (which is by default "true"), validate() will be 
invoked.</li>
- </ol>
+This interceptor also supports the following interfaces which can implemented 
by actions:
+ - `ValidationAware` - implemented by ActionSupport class
+ - `ValidationWorkflowAware` - allows changing result name programmatically
+ - `ValidationErrorAware` - notifies action about errors and also allow change 
result name
  
-</p>
-{% comment %}end snippet 
id=javadocDefaultWorkflowInterceptor|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil
 {% endcomment %}
-
-## Parameters
+You can also use `InputConfig` annotation to change result name returned when 
validation errors occurred.
 
+In `DefaultWorkflowInterceptor` applies only when action implements 
`com.opensymphony.xwork2.Validateable`
+ 1. if the action class have `validate{MethodName}()`, it will be invoked
+ 2. else if the action class have `validateDo{MethodName}()`, it will be 
invoked
+ 3. no matter if 1] or 2] is performed, if `alwaysInvokeValidate` property of 
the interceptor is `true` (which is by 
+   default `true`), `validate()` will be invoked.
 
+## Parameters
 
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
 {% endcomment %}
-<p> <ul>
- <li>inputResultName - Default to "input". Determine the result name to be 
returned when
- an action / field error is found.</li>
- </ul>
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
 {% endcomment %}
+ - `inputResultName` - Default to "input". Determine the result name to be 
returned when an action / field error is found.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
 {% endcomment %}
-<p>
- <p>There are no known extension points for this interceptor.</p>
-
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
 {% endcomment %}
+There are no known extension points for this interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
 {% endcomment %}
-
 ```xml
-
  <action name="someAction" class="com.examples.SomeAction">
      <interceptor-ref name="params"/>
      <interceptor-ref name="validation"/>
@@ -124,8 +79,4 @@ title: Default Workflow Interceptor
      </interceptor-ref>
      <result name="success">good_result.ftl</result>
  </action>
-
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
 {% endcomment %}
diff --git a/source/core-developers/exception-interceptor.md 
b/source/core-developers/exception-interceptor.md
index 34cc1c5..75dc7d1 100644
--- a/source/core-developers/exception-interceptor.md
+++ b/source/core-developers/exception-interceptor.md
@@ -1,76 +1,43 @@
 ---
-layout: core-developers
+layout: default
 title: Exception Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Exception Interceptor
 
+This interceptor forms the core functionality of the exception handling 
feature. Exception handling allows you to map 
+an exception to a result code, just as if the action returned a result code 
instead of throwing an unexpected exception. 
+When an exception is encountered, it is wrapped with an `ExceptionHolder` and 
pushed on the stack, providing easy access 
+to the exception from within your result.
 
-
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
 {% endcomment %}
-<p> <p>
- This interceptor forms the core functionality of the exception handling 
feature. Exception handling allows you to map
- an exception to a result code, just as if the action returned a result code 
instead of throwing an unexpected
- exception. When an exception is encountered, it is wrapped with an {@link 
ExceptionHolder} and pushed on the stack,
- providing easy access to the exception from within your result.
- </p>
-
- <p>
- <b>Note:</b> While you can configure exception mapping in your configuration 
file at any point, the configuration
- will not have any effect if this interceptor is not in the interceptor stack 
for your actions. It is recommended that
- you make this interceptor the first interceptor on the stack, ensuring that 
it has full access to catch any
- exception, even those caused by other interceptors.
- </p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
 {% endcomment %}
+> Note: While you can configure exception mapping in your configuration file 
at any point, the configuration will not 
+> have any effect if this interceptor is not in the interceptor stack for your 
actions. It is recommended that you make 
+> this interceptor the first interceptor on the stack, ensuring that it has 
full access to catch any exception, even 
+> those caused by other interceptors.
 
 ## Parameters
 
+ - `logEnabled` (optional) - should exceptions also be logged? (boolean 
true|false)
+ - `logLevel` (optional) - what log level should we use (`trace, debug, info, 
warn, error, fatal`)? - default is `debug`
+ - `logCategory` (optional) - if provided we would use this category (eg. 
`com.mycompany.app`). Default is to use 
+   `com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor`.
 
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>logEnabled (optional) - Should exceptions also be logged? (boolean 
true|false)</li>
- 
- <li>logLevel (optional) - what log level should we use (<code>trace, debug, 
info, warn, error, fatal</code>)? - defaut is <code>debug</code></li>
- 
- <li>logCategory (optional) - If provided we would use this category (eg. 
<code>com.mycompany.app</code>).
- Default is to use 
<code>com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor</code>.</li>
-
- </ul>
-
- <p>
- The parameters above enables us to log all thrown exceptions with stacktace 
in our own logfile,
- and present a friendly webpage (with no stacktrace) to the end user.
- </p>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
 {% endcomment %}
+The parameters above enables us to log all thrown exceptions with stacktrace 
in our own logfile, and present a friendly 
+webpage (with no stacktrace) to the end user.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
 {% endcomment %}
-<p> <p>
- If you want to add custom handling for publishing the Exception, you may 
override
- {@link #publishException(com.opensymphony.xwork2.ActionInvocation, 
ExceptionHolder)}. The default implementation
- pushes the given ExceptionHolder on value stack. A custom implementation 
could add additional logging etc.
- </p>
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
 {% endcomment %}
+If you want to add custom handling for publishing the Exception, you may 
override `#publishException(com.opensymphony.xwork2.ActionInvocation, 
ExceptionHolder)`. 
+The default implementation pushes the given `ExceptionHolder` on a value 
stack. A custom implementation could add additional 
+logging etc.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
 {% endcomment %}
-
 ```xml
- <xwork>
+ <struts>
      <package name="default" extends="xwork-default">
          <global-results>
              <result name="error" type="freemarker">error.ftl</result>
@@ -88,8 +55,5 @@ title: Exception Interceptor
              <result name="success" type="freemarker">test.ftl</result>
          </action>
      </package>
- </xwork>
-
-```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
 {% endcomment %}
+ </struts>
+```
\ No newline at end of file
diff --git a/source/core-developers/execute-and-wait-interceptor.md 
b/source/core-developers/execute-and-wait-interceptor.md
index bea5505..e9ec02a 100644
--- a/source/core-developers/execute-and-wait-interceptor.md
+++ b/source/core-developers/execute-and-wait-interceptor.md
@@ -1,98 +1,67 @@
 ---
-layout: core-developers
+layout: default
 title: Execute and Wait Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Execute and Wait Interceptor
 
+The ExecuteAndWaitInterceptor is great for running long-lived actions in the 
background while showing the user a nice 
+progress meter. This also prevents the HTTP request from timing out when the 
action takes more than 5 or 10 minutes.
 
+Using this interceptor is pretty straight forward. Assuming that you are 
including struts-default.xml, this interceptor 
+is already configured but is not part of any of the default stacks. Because of 
the nature of this interceptor, it must 
+be the `last` interceptor in the stack.
 
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
 {% endcomment %}
-<p> <p>
- The ExecuteAndWaitInterceptor is great for running long-lived actions in the 
background while showing the user a nice
- progress meter. This also prevents the HTTP request from timing out when the 
action takes more than 5 or 10 minutes.
- </p>
+This interceptor works on a per-session basis. That means that the same action 
name (`myLongRunningAction`, in 
+the above example) cannot be run more than once at a time in a given session. 
On the initial request or any subsequent
+requests (before the action has completed), the `wait` result will be 
returned. 
 
- <p> Using this interceptor is pretty straight forward. Assuming that you are 
including struts-default.xml, this
- interceptor is already configured but is not part of any of the default 
stacks. Because of the nature of this
- interceptor, it must be the <b>last</b> interceptor in the stack.
- </p>
+>The wait result is responsible for issuing a subsequent request back to the 
action, giving the effect 
+> of a self-updating progress meter.
 
- <p> This interceptor works on a per-session basis. That means that the same 
action name (myLongRunningAction, in the
- above example) cannot be run more than once at a time in a given session. On 
the initial request or any subsequent
- requests (before the action has completed), the <b>wait</b> result will be 
returned. <b>The wait result is
- responsible for issuing a subsequent request back to the action, giving the 
effect of a self-updating progress
- meter</b>.
- </p>
+If no `wait` result is found, Struts will automatically generate a wait result 
on the fly. This result is written 
+in FreeMarker and cannot run unless FreeMarker is installed. If you don't wish 
to deploy with FreeMarker, you must 
+provide your own wait result. This is generally a good thing to do anyway, as 
the default wait page is very plain.
 
- <p> If no "wait" result is found, Struts will automatically generate a wait 
result on the fly. This result is
- written in FreeMarker and cannot run unless FreeMarker is installed. If you 
don't wish to deploy with FreeMarker, you
- must provide your own wait result. This is generally a good thing to do 
anyway, as the default wait page is very
- plain.
- </p>
+Whenever the wait result is returned, the action that is currently running in 
the background will be placed on top 
+of the stack. This allows you to display progress data, such as a count, in 
the wait page. By making the wait page 
+automatically reload the request to the action (which will be short-circuited 
by the interceptor), you can give
+the appearance of an automatic progress meter.
 
- <p>Whenever the wait result is returned, the <b>action that is currently 
running in the background will be placed on
- top of the stack</b>. This allows you to display progress data, such as a 
count, in the wait page. By making the wait
- page automatically reload the request to the action (which will be 
short-circuited by the interceptor), you can give
- the appearance of an automatic progress meter.
- </p>
+This interceptor also supports using an initial wait delay. An initial delay 
is a time in milliseconds we let the server 
+wait before the wait page is shown to the user. During the wait this 
interceptor will wake every 100 millis to check 
+if the background process is done premature, thus if the job for some reason 
doesn't take to long the wait page is not 
+shown to the user.
+This is useful for e.g. search actions that have a wide span of execution 
time. Using a delay time of 2000 millis we 
+ensure the user is presented fast search results immediately and for the slow 
results a wait page is used.
 
- <p>This interceptor also supports using an initial wait delay. An initial 
delay is a time in milliseconds we let the
- server wait before the wait page is shown to the user. During the wait this 
interceptor will wake every 100 millis
- to check if the background process is done premature, thus if the job for 
some reason doesn't take to long the wait
- page is not shown to the user.
- <br> This is useful for e.g. search actions that have a wide span of 
execution time. Using a delay time of 2000
- millis we ensure the user is presented fast search results immediately and 
for the slow results a wait page is used.
- </p>
+> Important: Because the action will be running in a separate thread, you 
can't use ActionContext because it
+> is a ThreadLocal. This means if you need to access, for example, session 
data, you need to implement `SessionAware`
+> rather than calling `ActionContext.getSession()`.
 
- <p><b>Important</b>: Because the action will be running in a separate thread, 
you can't use ActionContext because it
- is a ThreadLocal. This means if you need to access, for example, session 
data, you need to implement SessionAware
- rather than calling ActionContext.getSession().
- </p>
-
- <p>The thread kicked off by this interceptor will be named in the form 
<b><u>actionName</u>BackgroundProcess</b>.
- For example, the <i>search</i> action would run as a thread named 
<i>searchBackgroundProcess</i>.
- </p>
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
 {% endcomment %}
+The thread kicked off by this interceptor will be named in the form 
`<actionName>BackgroundProcess`.
+For example, the `search` action would run as a thread named 
`searchBackgroundProcess`.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>threadPriority (optional) - the priority to assign the thread. Default is 
<code>Thread.NORM_PRIORITY</code>.</li>
- <li>delay (optional) - an initial delay in millis to wait before the wait 
page is shown (returning <code>wait</code> as result code). Default is no 
initial delay.</li>
- <li>delaySleepInterval (optional) - only used with delay. Used for waking up 
at certain intervals to check if the background process is already done. 
Default is 100 millis.</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
 {% endcomment %}
+ - `threadPriority` (optional) - the priority to assign the thread. Default is 
`Thread.NORM_PRIORITY`.
+ - `delay` (optional) - an initial delay in millis to wait before the wait 
page is shown (returning `wait` as result code). 
+   Default is no initial delay.
+ - `delaySleepInterval` (optional) - only used with delay. Used for waking up 
at certain intervals to check if the background 
+   process is already done. Default is 100 millis.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
 {% endcomment %}
-<p> <p>
- If you wish to make special preparations before and/or after the invocation 
of the background thread, you can extend
- the BackgroundProcess class and implement the beforeInvocation() and 
afterInvocation() methods. This may be useful
- for obtaining and releasing resources that the background process will need 
to execute successfully. To use your
- background process extension, extend ExecuteAndWaitInterceptor and implement 
the getNewBackgroundProcess() method.
- </p>
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
 {% endcomment %}
+If you wish to make special preparations before and/or after the invocation of 
the background thread, you can extend 
+the `BackgroundProcess` class and implement the `beforeInvocation()` and 
`afterInvocation()` methods. This may be useful 
+for  obtaining and releasing resources that the background process will need 
to execute successfully. To use your background 
+process extension, extend `ExecuteAndWaitInterceptor` and implement the 
`getNewBackgroundProcess()` method.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
 {% endcomment %}
-
 ```xml
  <action name="someAction" class="com.examples.SomeAction">
      <interceptor-ref name="completeStack"/>
@@ -150,7 +119,4 @@ title: Execute and Wait Interceptor
  </action>
  </pre>
 
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
 {% endcomment %}
diff --git a/source/core-developers/file-upload-interceptor.md 
b/source/core-developers/file-upload-interceptor.md
index d7752a8..d6b2ef6 100644
--- a/source/core-developers/file-upload-interceptor.md
+++ b/source/core-developers/file-upload-interceptor.md
@@ -1,103 +1,57 @@
 ---
-layout: core-developers
+layout: default
 title: File Upload Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # File Upload Interceptor
 
+See [this page](file-upload.html) for more examples and advanced configuration.
 
-  See [this page](file-upload.html) for more examples and advanced 
configuration
+Interceptor that is based off of `MultiPartRequestWrapper`, which is 
automatically applied for any request that includes 
+a file. It adds the following parameters, where `<file name>` is the name 
given to the file uploaded by the HTML form:
 
-| 
+ - `<file name>`: `File` - the actual File
+ - `<file name>ContentType`: `String` - the content type of the file
+ - `<file name>FileName`: `String` - the actual name of the file uploaded (not 
the HTML name)
 
+You can get access to these files by merely providing setters in your action 
that correspond to any of the three patterns 
+above, such as `setDocument(File document)`, `setDocumentContentType(String 
contentType)`, etc.
 
+See the example code section.
 
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-<p> <p>
- Interceptor that is based off of {@link MultiPartRequestWrapper}, which is 
automatically applied for any request that
- includes a file. It adds the following parameters, where [File Name] is the 
name given to the file uploaded by the
- HTML form:
- </p>
- <ul>
+This interceptor will add several field errors, assuming that the action 
implements `ValidationAware`. These error messages 
+are based on several i18n values stored in `struts-messages.properties`, a 
default i18n file processed for all i18n requests. 
+You can override the text of these messages by providing text for the 
following keys:
 
- <li>[File Name] : File - the actual File</li>
-
- <li>[File Name]ContentType : String - the content type of the file</li>
-
- <li>[File Name]FileName : String - the actual name of the file uploaded (not 
the HTML name)</li>
-
- </ul>
-
- <p>You can get access to these files by merely providing setters in your 
action that correspond to any of the three
- patterns above, such as setDocument(File document), 
setDocumentContentType(String contentType), etc.
- <br>See the example code section.
- </p>
-
- <p> This interceptor will add several field errors, assuming that the action 
implements {@link ValidationAware}.
- These error messages are based on several i18n values stored in 
struts-messages.properties, a default i18n file
- processed for all i18n requests. You can override the text of these messages 
by providing text for the following
- keys:
- </p>
-
- <ul>
-
- <li>struts.messages.error.uploading - a general error that occurs when the 
file could not be uploaded</li>
-
- <li>struts.messages.error.file.too.large - occurs when the uploaded file is 
too large</li>
-
- <li>struts.messages.error.content.type.not.allowed - occurs when the uploaded 
file does not match the expected
- content types specified</li>
-
- <li>struts.messages.error.file.extension.not.allowed - occurs when the 
uploaded file does not match the expected
- file extensions specified</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
+ - `struts.messages.error.uploading` - a general error that occurs when the 
file could not be uploaded
+ - `struts.messages.error.file.too.large` - occurs when the uploaded file is 
too large
+ - `struts.messages.error.content.type.not.allowed` - occurs when the uploaded 
file does not match the expected content 
+   types specified
+ - `struts.messages.error.file.extension.not.allowed` - occurs when the 
uploaded file does not match the expected 
+   file extensions specified
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>maximumSize (optional) - the maximum size (in bytes) that the interceptor 
will allow a file reference to be set
- on the action. Note, this is <b>not</b> related to the various properties 
found in struts.properties.
- Default to approximately 2MB.</li>
-
- <li>allowedTypes (optional) - a comma separated list of content types (ie: 
text/html) that the interceptor will allow
- a file reference to be set on the action. If none is specified allow all 
types to be uploaded.</li>
-
- <li>allowedExtensions (optional) - a comma separated list of file extensions 
(ie: .html) that the interceptor will allow
- a file reference to be set on the action. If none is specified allow all 
extensions to be uploaded.</li>
- </ul>
-
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
+ - `maximumSize` (optional) - the maximum size (in bytes) that the interceptor 
will allow a file reference to be set
+   on the action. Note, this is <b>not</b> related to the various properties 
found in struts.properties. 
+   Default to approximately 2MB.
+ - `allowedTypes` (optional) - a comma separated list of content types (ie: 
`text/html`) that the interceptor will allow
+   a file reference to be set on the action. If none is specified allow all 
types to be uploaded.
+ - `allowedExtensions` (optional) - a comma separated list of file extensions 
(ie: `.html`) that the interceptor will allow
+   a file reference to be set on the action. If none is specified allow all 
extensions to be uploaded.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-<p> <p>
- You can extend this interceptor and override the acceptFile method to provide 
more control over which files
- are supported and which are not.
- </p>
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
+You can extend this interceptor and override the acceptFile method to provide 
more control over which files are supported 
+and which are not.
 
 ## Examples
 
 **Example action mapping:**
 
-
-{% comment %}start snippet 
id=example-configuration|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-
 ```xml
  <action name="doUpload" class="com.example.UploadAction">
      <interceptor-ref name="fileUpload"/>
@@ -107,15 +61,10 @@ title: File Upload Interceptor
 
 ```
 
-{% comment %}end snippet 
id=example-configuration|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-
 Notice the interceptor configuration in the preceding example\. 
 
 **Example JSP form tags:**
 
-
-{% comment %}start snippet 
id=example-form|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-
 ```xml
    <s:form action="doUpload" method="post" enctype="multipart/form-data">
        <s:file name="upload" label="File"/>
@@ -124,21 +73,10 @@ Notice the interceptor configuration in the preceding 
example\.
 
 ```
 
-{% comment %}end snippet 
id=example-form|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-
-
-{% comment %}start snippet 
id=multipart-note|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-<p> <p>
- You must set the encoding to <code>multipart/form-data</code> in the form 
where the user selects the file to upload.
- </p>
-</p>
-{% comment %}end snippet 
id=multipart-note|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
+You must set the encoding to <code>multipart/form-data</code> in the form 
where the user selects the file to upload.
 
 **Example Action class:**
 
-
-{% comment %}start snippet 
id=example-action|lang=java|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-
 ```java
     package com.example;
 
@@ -170,24 +108,15 @@ Notice the interceptor configuration in the preceding 
example\.
 
 ```
 
-{% comment %}end snippet 
id=example-action|lang=java|javadoc=true|url=org.apache.struts2.interceptor.FileUploadInterceptor
 {% endcomment %}
-
 **Setting parameters example:**
 
-
-~~~~~~~
-
+```xml
 <interceptor-ref name="fileUpload">
   <param name="allowedTypes">
      image/png,image/gif,image/jpeg
   </param>
 </interceptor-ref>
+```
 
-~~~~~~~
-
-This part is optional and would be done in place of the 
-
-~~~~~~~
-<interceptor-ref name="fileUpload"/>
-~~~~~~~
- line in the action mapping example above\.
+This part is optional and would be done in place of the `<interceptor-ref 
name="fileUpload"/>` line in the action mapping 
+example above.
diff --git a/source/core-developers/i18n-interceptor.md 
b/source/core-developers/i18n-interceptor.md
index 4d8d34e..09a3dd7 100644
--- a/source/core-developers/i18n-interceptor.md
+++ b/source/core-developers/i18n-interceptor.md
@@ -1,33 +1,42 @@
 ---
-layout: core-developers
+layout: default
 title: I18n Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # I18n Interceptor
 
 ## Description
 
-An interceptor that handles setting the locale specified in a session as the 
locale for the current action request\. In addition, this interceptor will look 
for a specific HTTP request parameter and set the locale to whatever value is 
provided, it also looks for specific cookie to read locale from\. This means 
that this interceptor can be used to allow for your application to dynamically 
change the locale for the user's session or, alternatively, only for the 
current  request\. This is v [...]
+An interceptor that handles setting the locale specified in a session as the 
locale for the current action request. 
+In addition, this interceptor will look for a specific HTTP request parameter 
and set the locale to whatever value is 
+provided, it also looks for specific cookie to read locale from. This means 
that this interceptor can be used to allow 
+for your application to dynamically change the locale for the user's session 
or, alternatively, only for the current 
+request. This is very useful for applications that require multi-lingual 
support and want the user to be able to set 
+his or her language preference at any point. The locale parameter is removed 
during the execution of this interceptor, 
+ensuring that properties aren't set on an action (such as request_locale) that 
have no typical corresponding setter 
+in your action.
 
-For example, using the default parameter name, a request to 
**foo\.action?request\_locale=en\_US**, then the locale for US English is saved 
in the user's session and will be used for all future requests\. If there is no 
locale set (for example with the first visit), the interceptor uses the browser 
locale\.
+For example, using the default parameter name, a request to 
`foo.action?request_locale=en_US`, then the locale for 
+US English is saved in the user's session and will be used for all future 
requests. If there is no locale set 
+(for example with the first visit), the interceptor uses the browser locale.
 
 ## Parameters
 
-+ **parameterName** (optional) \- the name of the HTTP request parameter that 
dictates the locale to switch to and save in the session\. By default this is 
**request\_locale**
-
-+ **requestCookieParameterName** (optional) \- the name of the HTTP request 
parameter that dictates the locale to switch to and save in a cookie\. By 
default this is **request\_cookie\_locale**
-
-+ **requestOnlyParameterName** (optional) \- the name of the HTTP request 
parameter that dictates the locale to switch to for the current request only, 
without saving it in the session\. By default this is **request\_only\_locale**
-
-+ **attributeName** (optional) \- the name of the session key to store the 
selected locale\. By default this is **WW\_TRANS\_I18N\_LOCALE**
-
-+ **localeStorage** (optional) \- the name of storage location, it can be 
**none**, **session** or **cookie**\. By default this is **session**
+ - `parameterName` (optional) - the name of the HTTP request parameter that 
dictates the locale to switch to and save 
+   in the session. By default this is `request_locale`
+ - `requestCookieParameterName` (optional) - the name of the HTTP request 
parameter that dictates the locale to switch 
+   to and save in a cookie. By default this is `request_cookie_locale`
+ - `requestOnlyParameterName` (optional) - the name of the HTTP request 
parameter that dictates the locale to switch to 
+   for the current request only, without saving it in the session. By default 
this is `request_only_locale`
+ - `attributeName` (optional) - the name of the session key to store the 
selected locale. By default this is `WW_TRANS_I18N_LOCALE`
+ - `localeStorage` (optional) - the name of storage location, it can be 
`none`, `session` or `cookie`. By default this is `session`
 
 ## Examples
 
-
-
-~~~~~~~
+```xml
 <interceptor name="i18nCookie" 
class="org.apache.struts2.interceptor.I18nInterceptor"/>
 
 <action name="someAction" class="com.examples.SomeAction">
@@ -37,4 +46,4 @@ For example, using the default parameter name, a request to 
**foo\.action?reques
     <interceptor-ref name="basicStack"/>
     <result name="success">good_result.ftl</result>
 </action>
-~~~~~~~
+```
diff --git a/source/core-developers/interceptors.md 
b/source/core-developers/interceptors.md
index 1aa20ad..45df0bf 100644
--- a/source/core-developers/interceptors.md
+++ b/source/core-developers/interceptors.md
@@ -115,24 +115,24 @@ specified in the `<interceptors/>` tag.
 |[Annotation Parameter Filter 
Interceptor](annotation-parameter-filter-interceptor.html)|annotationParameterFilter|Annotation
 based version of [Parameter Filter 
Interceptor](parameter-filter-interceptor.html).|
 |[Annotation Workflow 
Interceptor](annotation-workflow-interceptor.html)|annotationWorkflow|Invokes 
any annotated methods on the action.|
 |[Chaining Interceptor](chaining-interceptor.html)|chain|Makes the previous 
Action's properties available to the current Action. Commonly used together 
with <result type="chain"> (in the previous Action).|
-|[Checkbox Interceptor](checkbox-interceptor.html)|checkbox|Adds automatic 
checkbox handling code that detect an unchecked checkbox and add it as a 
parameter with a default (usually 'false') value. Uses a specially named hidden 
field to detect unsubmitted checkboxes. The default unchecked value is 
overridable for non-boolean value'd checkboxes.|
+|[Checckbox Interceptor](checkbox-interceptor.html)|checkbox|Adds automatic 
checkbox handling code that detect an unchecked checkbox and add it as a 
parameter with a default (usually 'false') value. Uses a specially named hidden 
field to detect unsubmitted checkboxes. The default unchecked value is 
overridable for non-boolean value'd checkboxes.|
 |[Conversion Error 
Interceptor](conversion-error-interceptor.html)|conversionError|Adds conversion 
errors from the ActionContext to the Action's field errors|
 |[Cookie Interceptor](cookie-interceptor.html)|cookie|Inject cookie with a 
certain configurable name / value into action. (Since 2.0.7.)|
-|[CookieProvider 
Interceptor](cookie-provider-interceptor.html)|cookieProvider|Transfer cookies 
from action to response (Since 2.3.15.)|
+|[Cookie Provider 
Interceptor](cookie-provider-interceptor.html)|cookieProvider|Transfer cookies 
from action to response (Since 2.3.15.)|
 |[Create Session 
Interceptor](create-session-interceptor.html)|createSession|Create an 
HttpSession automatically, useful with certain Interceptors that require a 
HttpSession to work properly (like the TokenInterceptor)|
 |[Clear Session Interceptor](clear-session-interceptor.html)|clearSession|This 
interceptor clears the HttpSession.|
-|[DebuggingInterceptor](debugging-interceptor.html)|debugging|Provides several 
different debugging screens to provide insight into the data behind the page.|
+|[Debugging Interceptor](debugging-interceptor.html)|debugging|Provides 
several different debugging screens to provide insight into the data behind the 
page.|
 |[Default Workflow 
Interceptor](default-workflow-interceptor.html)|workflow|Calls the validate 
method in your Action class. If Action errors are created then it returns the 
INPUT view.|
 |[Exception Interceptor](exception-interceptor.html)|exception|Maps exceptions 
to a result.|
 |[Execute and Wait 
Interceptor](execute-and-wait-interceptor.html)|execAndWait|Executes the Action 
in the background and then sends the user off to an intermediate waiting page.|
 |[File Upload Interceptor](file-upload-interceptor.html)|fileUpload|An 
Interceptor that adds easy access to file upload support.|
 |[I18n Interceptor](i18n-interceptor.html)|i18n|Remembers the locale selected 
for a user's session.|
-|[Logging Interceptor](logger-interceptor.html)|logger|Outputs the name of the 
Action.|
+|[Logging Interceptor](logging-interceptor.html)|logger|Outputs the name of 
the Action.|
 |[Message Store Interceptor](message-store-interceptor.html)|store|Store and 
retrieve action messages / errors / field errors for action that implements 
ValidationAware interface into session.|
 |[Model Driven Interceptor](model-driven-interceptor.htm)|modelDriven|If the 
Action implements ModelDriven, pushes the getModel Result onto the Value Stack.|
 |[Multiselect Interceptor](multiselect-interceptor.html)|multiselect|Like the 
checkbox interceptor detects that no value was selected for a field with 
multiple values (like a select) and adds an empty parameter|
 |[NoOp Interceptor](no-op-interceptor.html)|noop|Does nothing, just passes 
invocation further, used in empty stack|
-|[Parameter Filter Interceptor](parameter-filter-interceptor.html)|N/A|Removes 
parameters from the list of those available to Actions|
+|[Parameter Filter 
Interceptor](parameter-filter-interceptor.html)|parameterFilter|Removes 
parameters from the list of those available to Actions|
 |[Parameters Interceptor](parameters-interceptor.html)|params|Sets the request 
parameters onto the Action.|
 |[Parameter Remover 
Interceptor](parameter-remover-interceptor.html)|paramRemover|Removes a 
parameter from parameters map.|
 |[Prepare Interceptor](prepare-interceptor.html)|prepare|If the Action 
implements Preparable, calls its prepare method.|
diff --git a/source/core-developers/logger-interceptor.md 
b/source/core-developers/logging-interceptor.md
similarity index 100%
rename from source/core-developers/logger-interceptor.md
rename to source/core-developers/logging-interceptor.md
diff --git a/source/core-developers/message-store-interceptor.md 
b/source/core-developers/message-store-interceptor.md
index c89d7ef..09fb012 100644
--- a/source/core-developers/message-store-interceptor.md
+++ b/source/core-developers/message-store-interceptor.md
@@ -1,28 +1,37 @@
 ---
-layout: core-developers
+layout: default
 title: Message Store Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Message Store Interceptor
 
-An interceptor to store a _ValidationAware_  action's messages / errors and 
field errors into HTTP Session, such that it will be retrievable at a later 
stage\. This allows the action's message / errors and field errors to be 
available longer that just the particular HTTP request\.
+An interceptor to store a `ValidationAware` action's messages / errors and 
field errors into HTTP Session, such that it 
+will be retrievable at a later stage. This allows the action's message / 
errors and field errors to be available longer 
+that just the particular HTTP request.
 
-If no session exists, nothing will be stored and can be retrieved later\. In 
other terms, the application is responsible to open the session\.
+If no session exists, nothing will be stored and can be retrieved later. In 
other terms, the application is responsible 
+to open the session.
 
-In the **STORE** mode, the interceptor will store the _ValidationAware_  
action's message / errors and field errors into HTTP session\.
+In the `STORE` mode, the interceptor will store the `ValidationAware` action's 
message / errors and field errors into 
+HTTP session.
 
-In the **RETRIEVE** mode, the interceptor will retrieve the stored action's 
message / errors and field errors and put them back into the _ValidationAware_  
action\.
+In the `RETRIEVE` mode, the interceptor will retrieve the stored action's 
message / errors and field errors and put them 
+back into the `ValidationAware` action.
 
-In the **AUTOMATIC** mode, the interceptor will always retrieve the stored 
action's message / errors and field errors and put them back into the 
\[ValidationAware\] action, and after Action execution, if the _Result_  is an 
instance of _ServletRedirectResult_ , the action's message / errors and field 
errors into automatically be stored in the HTTP session\.\.
+In the `AUTOMATIC` mode, the interceptor will always retrieve the stored 
action's message / errors and field errors 
+and put them back into the `ValidationAware` action, and after Action 
execution, if the `Result` is an instance 
+of `ServletRedirectResult`, the action's message / errors and field errors 
into automatically be stored in the HTTP session.
 
-The interceptor does nothing in the **NONE** mode, which is the default\.
+The interceptor does nothing in the `NONE` mode, which is the default.
 
 The operation mode could be switched using:
 
 1. Setting the interceptor parameter eg.
 
-
-~~~~~~~
+```xml
 <action name="submitApplication" ...>
     <interceptor-ref name="store"/>
            <param name="operationMode">STORE</param>
@@ -30,53 +39,28 @@ The operation mode could be switched using:
        <interceptor-ref name="defaultStack" />
     ....
 </action>
-~~~~~~~
-
-2. Through request parameter 
-
-~~~~~~~
-allowRequestParameterSwitch
-~~~~~~~
- must be 'true' which is the default
+```
 
-
-~~~~~~~
-the request will have the operation mode in 'STORE'
+2. Through request parameter `allowRequestParameterSwitch` must be 'true' 
which is the default, the request will have 
+  the operation mode in `STORE`
+```
 http://localhost:8080/context/submitApplication.action?operationMode=STORE
-~~~~~~~
+```
 
 ## Parameters
 
-+ 
-
-~~~~~~~
-allowRequestParameterSwitch
-~~~~~~~
- \- To enable request parameter that could switch the operation mode of this 
interceptor\.
-
-+ 
-
-~~~~~~~
-requestParameterSwitch
-~~~~~~~
- \- The request parameter that will indicate what mode this interceptor is in\.
-
-+ 
-
-~~~~~~~
-operationMode
-~~~~~~~
- \- The operation mode this interceptor should be in (either **STORE**, 
**RETRIEVE**, **AUTOMATIC**, or **NONE**)\. **NONE **being the default\.
+ - `allowRequestParameterSwitch` - To enable request parameter that could 
switch the operation mode of this interceptor.
+ - `requestParameterSwitch` - The request parameter that will indicate what 
mode this interceptor is in.
+ - `operationMode` - The operation mode this interceptor should be in (either 
`STORE`, `RETRIEVE`, `AUTOMATIC`, or `NONE`). 
+   `NONE` being the default.
 
 ## Extending the Interceptor
 
-There is no known extensions\.
+There is no known extensions.
 
 ## Examples
 
-
-
-~~~~~~~
+```xml
 <action name="submitApplication" ....>
        <interceptor-ref name="store">
                <param name="operationMode">STORE</param>
@@ -92,8 +76,9 @@ There is no known extensions\.
        </interceptor-ref>
        <result>applicationFailed.jsp</result>
 </action>
-~~~~~~~
-
-With the example above, **submitApplication\.action** will have the action 
messages / errors / field errors stored in the HTTP Session\. Later when 
needed, (in this case, when **applicationFailed\.action** is fired, it will get 
the action messages / errors / field errors stored in the HTTP Session and put 
them back into the action\.
+```
 
+With the example above, `submitApplication.action` will have the action 
messages / errors / field errors stored in 
+the HTTP Session. Later when needed, (in this case, when 
`applicationFailed.action` is fired, it will get the action 
+messages / errors / field errors stored in the HTTP Session and put them back 
into the action.
  
\ No newline at end of file
diff --git a/source/core-developers/model-driven-interceptor.md 
b/source/core-developers/model-driven-interceptor.md
index 0175096..be88020 100644
--- a/source/core-developers/model-driven-interceptor.md
+++ b/source/core-developers/model-driven-interceptor.md
@@ -1,6 +1,9 @@
 ---
-layout: core-developers
+layout: default
 title: Model Driven Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Model Driven Interceptor
diff --git a/source/core-developers/multiselect-interceptor.md 
b/source/core-developers/multiselect-interceptor.md
index e25a7e5..259a924 100644
--- a/source/core-developers/multiselect-interceptor.md
+++ b/source/core-developers/multiselect-interceptor.md
@@ -1,36 +1,19 @@
 ---
-layout: core-developers
+layout: default
 title: Multiselect Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Multiselect Interceptor
 
+Multiselect Interceptor is defined in the `defaultStack`. It checks each form 
parameter submitted to the action and if 
+it finds one with a prefix of `__multiselect_` it inserts a value for a 
parameter whose name is derived from the suffix
+to `__multiselect_` if it does not exist. The default value inserted is an 
empty String array.
 
-
-~~~~~~~
-org.apache.struts2.interceptor.MultiselectInterceptor
-~~~~~~~
- is in the 
-
-~~~~~~~
-defaultStack
-~~~~~~~
-\. It checks each form parameter submitted to the action and if it finds one 
with a prefix of 
-
-~~~~~~~
-__multiselect_
-~~~~~~~
- it inserts a value for a parameter whose name is derived from the suffix to 
-
-~~~~~~~
-__multiselect_
-~~~~~~~
- if it does not exist\. The default value inserted is an empty String array\.
-
-This means that a a field that can have multiple selected values(select, 
checkboxlist, etc) can be accompanied by a hidden input with the same name but 
a prefix of 
-
-~~~~~~~
-__multiselect_
-~~~~~~~
- so that if the no value is selected on the form the action will still receive 
a value(empty collection) rather than the default HTML action of not providing 
a value for unselected elements,
+This means that a a field that can have multiple selected values(select, 
checkboxlist, etc) can be accompanied by a hidden 
+input with the same name but a prefix of `__multiselect_` so that if the no 
value is selected on the form the action 
+will still receive a value(empty collection) rather than the default HTML 
action of not providing a value for unselected 
+elements.
  
\ No newline at end of file
diff --git a/source/core-developers/no-op-interceptor.md 
b/source/core-developers/no-op-interceptor.md
index 6fd62c6..b513a79 100644
--- a/source/core-developers/no-op-interceptor.md
+++ b/source/core-developers/no-op-interceptor.md
@@ -1,18 +1,13 @@
 ---
-layout: core-developers
+layout: default
 title: NoOp Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # NoOp Interceptor
 
-
-
-~~~~~~~
-org.apache.struts2.interceptor.NoOpInterceptor
-~~~~~~~
- is in the 
-
-~~~~~~~
-emptyStack
-~~~~~~~
- and it performs no computation, it is there to allow create an empty stack 
that can be used with actions that do not required receiving request parameters 
or are fully stateless, i\.e\. when producing a JSON response on public 
endpoints\.
+NoOp Interceptor is defined in the `emptyStack` and it performs no 
computation, it is there to allow create an empty 
+stack that can be used with actions that do not required receiving request 
parameters or are fully stateless,
+i.e. when producing a JSON response on public endpoints.
diff --git a/source/core-developers/parameter-filter-interceptor.md 
b/source/core-developers/parameter-filter-interceptor.md
index 9372ce9..58d8a66 100644
--- a/source/core-developers/parameter-filter-interceptor.md
+++ b/source/core-developers/parameter-filter-interceptor.md
@@ -1,68 +1,41 @@
 ---
-layout: core-developers
+layout: default
 title: Parameter Filter Interceptor
----
+parent:
+    title: Interceptors
+    url: interceptors.html
+------
 
 # Parameter Filter Interceptor
 
-
-
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor
 {% endcomment %}
-<p>
- The Parameter Filter Interceptor blocks parameters from getting
- to the rest of the stack or your action. You can use multiple 
- parameter filter interceptors for a given action, so, for example,
- you could use one in your default stack that filtered parameters
- you wanted blocked from every action and those you wanted blocked 
- from an individual action you could add an additional interceptor
- for each action.
+The Parameter Filter Interceptor blocks parameters from getting to the rest of 
the stack or your action. You can use 
+multiple parameter filter interceptors for a given action, so, for example, 
you could use one in your default stack 
+that filtered parameters you wanted blocked from every action and those you 
wanted blocked from an individual action 
+you could add an additional interceptor for each action.
  
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor
 {% endcomment %}
-
 ## Parameters
 
+ - `allowed` - a comma delimited list of parameter prefixes that are allowed 
to pass to the action
+ - `blocked` - a comma delimited list of parameter prefixes that are not 
allowed to pass to the action
+ - `defaultBlock` - boolean (default to false) whether by default a given 
parameter is blocked. If true, 
+   then a parameter must have a prefix in the allowed list in order to be able 
to pass to the action
 
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor
 {% endcomment %}
-<p>
- <ul>
- <li>allowed - a comma delimited list of parameter prefixes
-  that are allowed to pass to the action</li>
- <li>blocked - a comma delimited list of parameter prefixes 
- that are not allowed to pass to the action</li>
- <li>defaultBlock - boolean (default to false) whether by
- default a given parameter is blocked. If true, then a parameter
- must have a prefix in the allowed list in order to be able 
- to pass to the action
- </ul>
+The way parameters are filtered for the least configuration is that if a 
string is in the allowed or blocked lists, 
+then any parameter that is a member of the object represented by the parameter 
is allowed or blocked respectively.
  
- <p>The way parameters are filtered for the least configuration is that
- if a string is in the allowed or blocked lists, then any parameter
- that is a member of the object represented by the parameter is allowed
- or blocked respectively.</p>
+For example, if the parameters are:
  
- <p>For example, if the parameters are:
- <ul>
- <li>blocked: person,person.address.createDate,personDao</li>
- <li>allowed: person.address</li>
- <li>defaultBlock: false</li>
- </ul>
+ - `blocked`: person,person.address.createDate,personDao
+ - `allowed`: person.address
+ - `defaultBlock`: false
 
- <p>
- The parameters person.name, person.phoneNum etc would be blocked 
- because 'person' is in the blocked list. However, person.address.street
- and person.address.city would be allowed because person.address is
- in the allowed list (the longer string determines permissions).</p> 
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor
 {% endcomment %}
+The parameters `person.name`, `person.phoneNum` etc would be blocked because 
`person` is in the blocked list. However, 
+`person.address.street` and `person.address.city` would be allowed because 
`person.address` is in the allowed list 
+(the longer string determines permissions). 
 
 ## Example
 
-
-
-~~~~~~~
-
+```xml
 <interceptors>
     ... 
     <interceptor name="parameterFilter" 
class="com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor"/>
@@ -76,6 +49,4 @@ title: Parameter Filter Interceptor
      </interceptor-ref> 
      ... 
 </action>
-
-~~~~~~~
-
+```
diff --git a/source/core-developers/prepare-interceptor.md 
b/source/core-developers/prepare-interceptor.md
index d527cfa..8bb6b34 100644
--- a/source/core-developers/prepare-interceptor.md
+++ b/source/core-developers/prepare-interceptor.md
@@ -1,92 +1,47 @@
 ---
-layout: core-developers
+layout: default
 title: Prepare Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Prepare Interceptor
 
+This interceptor calls `prepare()` on actions which implement `Preparable`. 
This interceptor is very useful for any 
+situation where you need to ensure some logic runs before the actual execute 
method runs.
 
+A typical use of this is to run some logic to load an object from the database 
so that when parameters are set they can 
+be set on this object. For example, suppose you have a User object with two 
properties: `id` and `name`. Provided that 
+the params interceptor is called twice (once before and once after this 
interceptor), you can load the User object using
+the `id` property and then when the second params interceptor is called the 
parameter `user.name` will be set, as desired, 
+on the actual object loaded from the database. See the example for more info.
 
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrepareInterceptor
 {% endcomment %}
-<p>
- This interceptor calls <code>prepare()</code> on actions which implement
- {@link Preparable}. This interceptor is very useful for any situation where
- you need to ensure some logic runs before the actual execute method runs.
-
- <p>
- A typical use of this is to run some logic to load an object from the
- database so that when parameters are set they can be set on this object. For
- example, suppose you have a User object with two properties: <i>id</i> and
- <i>name</i>. Provided that the params interceptor is called twice (once
- before and once after this interceptor), you can load the User object using
- the id property, and then when the second params interceptor is called the
- parameter <i>user.name</i> will be set, as desired, on the actual object
- loaded from the database. See the example for more info.
- </p>
- <p>
- <b>Note:</b> Since XWork 2.0.2, this interceptor extends {@link 
MethodFilterInterceptor}, therefore being
- able to deal with excludeMethods / includeMethods parameters. See [Workflow 
Interceptor]
- (class {@link DefaultWorkflowInterceptor}) for documentation and examples on 
how to use this feature.
- </p>
-
- <p>
- <b>Update</b>: Added logic to execute a prepare{MethodName} and conditionally
- the a general prepare() Method, depending on the 'alwaysInvokePrepare' 
parameter/property
- which is by default true. This allows us to run some logic based on the method
- name we specify in the {@link com.opensymphony.xwork2.ActionProxy}. For 
example, you can specify a
- prepareInput() method that will be run before the invocation of the input 
method.
- </p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrepareInterceptor
 {% endcomment %}
-
-
-{% comment %}start snippet 
id=javadocPrepareInterceptor|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil
 {% endcomment %}
-<p> 
- <b>In PrepareInterceptor</b>
- <p>Applies only when action implements Preparable</p>
- <ol>
-    <li>if the action class have prepare{MethodName}(), it will be invoked</li>
-    <li>else if the action class have prepareDo(MethodName()}(), it will be 
invoked</li>
-    <li>no matter if 1] or 2] is performed, if alwaysinvokePrepare property of 
the interceptor is "true" (which is by default "true"), prepare() will be 
invoked.</li>
- </ol>
+> Note: Since XWork 2.0.2, this interceptor extends `MethodFilterInterceptor`, 
therefore being able to deal with 
+> `excludeMethods` / `includeMethods` parameters. See [Workflow 
Interceptor](default-workflow-interceptor.html)
+> for documentation and examples on how to use this feature.
  
-</p>
-{% comment %}end snippet 
id=javadocPrepareInterceptor|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil
 {% endcomment %}
-
-## Parameters
-
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrepareInterceptor
 {% endcomment %}
-<p>
- <ul>
+> Update: Added logic to execute a `prepare<MethodName>` and conditionally the 
a general `prepare()` Method, depending 
+> on the `alwaysInvokePrepare` parameter/property which is by default `true`. 
This allows us to run some logic based 
+> on the method name we specify in the `com.opensymphony.xwork2.ActionProxy`. 
For example, you can specify a `prepareInput()`
+> method that will be run before the invocation of the input method.
 
- <li>alwaysInvokePrepare - Default to true. If true, prepare will always be 
invoked,
- otherwise it will not.</li>
+In `PrepareInterceptor` applies only when action implements `Preparable`
+ 1. if the action class have `prepare<MethodName>()`, it will be invoked
+ 2. else if the action class have `prepareDo<MethodName>()`, it will be invoked
+ 3. no matter if 1] or 2] is performed, if `alwaysInvokePrepare` property of 
the interceptor is `true` (which is by 
+   default `true`), `prepare()` will be invoked.
 
- </ul>
+## Parameters
 
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrepareInterceptor
 {% endcomment %}
+ - `alwaysInvokePrepare` - Default to true. If true, prepare will always be 
invoked, otherwise it will not.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrepareInterceptor
 {% endcomment %}
-<p>
  There are no known extension points to this interceptor.
 
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrepareInterceptor
 {% endcomment %}
-
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrepareInterceptor
 {% endcomment %}
-
 ```xml
  <!-- Calls the params interceptor twice, allowing you to
        pre-load data for the second time parameters are set -->
@@ -96,7 +51,4 @@ title: Prepare Interceptor
       <interceptor-ref name="basicStack"/>
       <result name="success">good_result.ftl</result>
   </action>
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.PrepareInterceptor
 {% endcomment %}
diff --git a/source/core-developers/roles-interceptor.md 
b/source/core-developers/roles-interceptor.md
index 4e70b5f..0b6412e 100644
--- a/source/core-developers/roles-interceptor.md
+++ b/source/core-developers/roles-interceptor.md
@@ -1,49 +1,31 @@
 ---
-layout: core-developers
+layout: default
 title: Roles Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Roles Interceptor
 
-
-
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.RolesInterceptor 
{% endcomment %}
-<p> <p>
- This interceptor ensures that the action will only be executed if the user 
has the correct role.
- </p>
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.RolesInterceptor 
{% endcomment %}
+This interceptor ensures that the action will only be executed if the user has 
the correct role.
 
 ## Parameters
 
+ - `allowedRoles` - a comma-separated list of roles to allow
+ - `disallowedRoles` - a comma-separated list of roles to disallow
 
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.RolesInterceptor 
{% endcomment %}
-<p>
- <ul>
-
- <li>allowedRoles - a comma-separated list of roles to allow</li>
-
- <li>disallowedRoles - a comma-separated list of roles to disallow</li>
-
- </ul>
-
- <p>
- When both allowedRoles and disallowedRoles are configured, then 
disallowedRoles
- takes precedence, applying the following logic: 
+When both `allowedRoles` and `disallowedRoles` are configured, then 
`disallowedRoles` takes precedence, applying 
+the following logic:
+ 
+```
   (if ((inRole(role1) || inRole(role2) || ... inRole(roleN)) &&
        !inRole(roleA) && !inRole(roleB) && ... !inRole(roleZ))
   { //permit ...
- </p>
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.RolesInterceptor 
{% endcomment %}
+```
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.RolesInterceptor
 {% endcomment %}
-
 ```xml
   <!-- only allows the admin and member roles -->
   <action name="someAction" class="com.examples.SomeAction">
@@ -53,7 +35,4 @@ title: Roles Interceptor
       </interceptor-ref>
       <result name="success">good_result.ftl</result>
   </action>
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.RolesInterceptor
 {% endcomment %}
diff --git a/source/core-developers/scope-interceptor.md 
b/source/core-developers/scope-interceptor.md
index 9ee3891..009e095 100644
--- a/source/core-developers/scope-interceptor.md
+++ b/source/core-developers/scope-interceptor.md
@@ -1,108 +1,58 @@
 ---
-layout: core-developers
+layout: default
 title: Scope Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Scope Interceptor
 
+This is designed to solve a few simple issues related to wizard-like 
functionality in Struts. One of those issues is that 
+some applications have a application-wide parameters commonly used, such 
`pageLen` (used for records per page). Rather 
+than requiring that each action check if such parameters are supplied, this 
interceptor can look for specified parameters 
+and pull them out of the session.
 
+This works by setting listed properties at action start with values from 
session/application attributes keyed after 
+the action's class, the action's name, or any supplied key. After action is 
executed all the listed properties are taken 
+back and put in session or application context.
 
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.ScopeInterceptor 
{% endcomment %}
-<p> <p>
- This is designed to solve a few simple issues related to wizard-like 
functionality in Struts. One of those issues is
- that some applications have a application-wide parameters commonly used, such 
<i>pageLen</i> (used for records per
- page). Rather than requiring that each action check if such parameters are 
supplied, this interceptor can look for
- specified parameters and pull them out of the session.
- </p>
+To make sure that each execution of the action is consistent it makes use of 
session-level locking. This way it guarantees 
+that each action execution is atomic at the session level. It doesn't 
guarantee application level consistency however 
+there has yet to be enough reasons to do so. Application level consistency 
would also be a big performance overkill.
 
- <p>This works by setting listed properties at action start with values from 
session/application attributes keyed
- after the action's class, the action's name, or any supplied key. After 
action is executed all the listed properties
- are taken back and put in session or application context.
- </p>
-
- <p>To make sure that each execution of the action is consistent it makes use 
of session-level locking. This way it
- guarantees that each action execution is atomic at the session level. It 
doesn't guarantee application level
- consistency however there has yet to be enough reasons to do so. Application 
level consistency would also be a big
- performance overkill.
- </p>
-
- <p>Note that this interceptor takes a snapshot of action properties just 
before result is presented (using a {@link
- PreResultListener}), rather than after action is invoked. There is a reason 
for that: At this moment we know that
- action's state is "complete" as it's values may depend on the rest of the 
stack and specifically - on the values of
- nested interceptors.
- </p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.ScopeInterceptor 
{% endcomment %}
+Note that this interceptor takes a snapshot of action properties just before 
result is presented (using a `PreResultListener`),
+rather than after action is invoked. There is a reason for that: At this 
moment we know that action's state is `complete` 
+as its values may depend on the rest of the stack and specifically - on the 
values of nested interceptors.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.ScopeInterceptor 
{% endcomment %}
-<p>
- <ul>
-
- <li>session - a list of action properties to be bound to session scope</li>
-
- <li>application - a list of action properties to be bound to application 
scope</li>
-
- <li>key - a session/application attribute key prefix, can contain following 
values:
-
- <ul>
-
- <li>CLASS - that creates a unique key prefix based on action namespace and 
action class, it's a default value</li>
-
- <li>ACTION - creates a unique key prefix based on action namespace and action 
name</li>
-
- <li>any other value is taken literally as key prefix</li>
-
- </ul>
- </li>
- <li>type - with one of the following
-
- <ul>
-
- <li>start - means it's a start action of the wizard-like action sequence and 
all session scoped properties are reset
- to their defaults</li>
-
- <li>end - means that session scoped properties are removed from session after 
action is run</li>
-
- <li>any other value throws IllegalArgumentException</li>
-
- </ul>
- </li>
-
- <li>sessionReset - name of a parameter (defaults to 'session.reset') which if 
set, causes all session values to be reset to action's default values or 
application
- scope values, note that it is similar to type="start" and in fact it does the 
same, but in our team it is sometimes
- semantically preferred. We use session scope in two patterns - sometimes 
there are wizard-like action sequences that
- have start and end, and sometimes we just want simply reset current session 
values.</li>
-
- <li>reset - boolean, defaults to false, if set, it has the same effect as 
setting all session values to be reset to action's default values or 
application.</li>
-
- <li>autoCreateSession - boolean value, sets if the session should be 
automatically created.</li>
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.ScopeInterceptor 
{% endcomment %}
+ - `session` - a list of action properties to be bound to session scope
+ - `application` - a list of action properties to be bound to application scope
+ - `key` - a session/application attribute key prefix, can contain following 
values:
+   - `CLASS` - that creates a unique key prefix based on action namespace and 
action class, it's a default value
+   - `ACTION` - creates a unique key prefix based on action namespace and 
action name
+   - any other value is taken literally as key prefix
+ - `type` - with one of the following
+   - `start` - means it's a start action of the wizard-like action sequence 
and all session scoped properties are reset
+     to their defaults
+   - `end` - means that session scoped properties are removed from session 
after action is run
+   - any other value throws `IllegalArgumentException`
+  - `sessionReset` - name of a parameter (defaults to `session.reset`) which 
if set, causes all session values to be 
+    reset to action's default values or application scope values, note that it 
is similar to `type="start"` and in fact 
+    it does the same, but in our team it is sometimes semantically preferred. 
We use session scope in two patterns - 
+    sometimes there are wizard-like action sequences that have start and end, 
and sometimes we just want simply reset 
+    current session values.
+  - `reset` - boolean, defaults to `false`, if set, it has the same effect as 
setting all session values to be reset 
+    to action's default values or application.
+  - `autoCreateSession` - boolean value, sets if the session should be 
automatically created.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.ScopeInterceptor 
{% endcomment %}
-<p>
- <p>There are no know extension points for this interceptor.</p>
-
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.ScopeInterceptor 
{% endcomment %}
+There are no know extension points for this interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.ScopeInterceptor
 {% endcomment %}
-
 ```xml
  <!-- As the filter and orderBy parameters are common for all my browse-type 
actions,
       you can move control to the scope interceptor. In the session parameter 
you can list
@@ -120,33 +70,34 @@ title: Scope Interceptor
 
 ```
 
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.ScopeInterceptor
 {% endcomment %}
-
 __Some more examples__
 
-The scope interceptor can be used to pass arbitrary objects from one action 
ActionA to another other ActionB, provided you have a getter in ActionA and and 
a similar setter in actionB\. Also, you should use a key parameter to make sure 
you tell ASF/WW which action gets which objects\. This allows you to mix 
several actions with several scopes, without running the risk of getting wrong 
objects\.
-
-
-~~~~~~~
-               <action name="scopea" 
class="com.mevipro.test.action.ScopeActionA">
-                       <result name="success" 
type="dispatcher">/jsp/test.jsp</result>
-                       <interceptor-ref name="basicStack"/>
-                       <interceptor-ref name="scope">
-                               <param name="key">funky</param>
-                       <param name="session">person</param>
-                       <param name="autoCreateSession">true</param>
-               </interceptor-ref>
-               </action>
-               <action name="scopeb" 
class="com.mevipro.test.action.ScopeActionB">
-                       <result name="success" 
type="dispatcher">/jsp/test.jsp</result>
-                       <interceptor-ref name="scope">
-                               <param name="key">funky</param>
-                       <param name="session">person</param>
-                       <param name="autoCreateSession">true</param>
-               </interceptor-ref>
-                       <interceptor-ref name="basicStack"/>
-               </action>
-
-~~~~~~~
-
-Don't forget: you'll need at least a getPerson() getter in ScopeActionA and a 
setPerson(Person person) setter in ScopeActionB, ánd you need to make sure you 
specify the key (you don't need this if you only use one action, as in the 
example above)\. Without the key, the scope interceptor will store your 
variables, but won't set them on the other action\.
+The scope interceptor can be used to pass arbitrary objects from one action 
ActionA to another other ActionB, provided 
+you have a getter in ActionA and and a similar setter in actionB. Also, you 
should use a key parameter to make sure you 
+tell ASF/WW which action gets which objects. This allows you to mix several 
actions with several scopes, without running 
+the risk of getting wrong objects.
+
+```xml
+<action name="scopea" class="com.mevipro.test.action.ScopeActionA">
+    <result name="success" type="dispatcher">/jsp/test.jsp</result>
+    <interceptor-ref name="basicStack"/>
+    <interceptor-ref name="scope">
+        <param name="key">funky</param>
+        <param name="session">person</param>
+        <param name="autoCreateSession">true</param>
+    </interceptor-ref>
+</action>
+<action name="scopeb" class="com.mevipro.test.action.ScopeActionB">
+    <result name="success" type="dispatcher">/jsp/test.jsp</result>
+    <interceptor-ref name="scope">
+        <param name="key">funky</param>
+        <param name="session">person</param>
+        <param name="autoCreateSession">true</param>
+    </interceptor-ref>
+    <interceptor-ref name="basicStack"/>
+</action>
+```
+
+Don't forget: you'll need at least a `getPerson()` getter in `ScopeActionA` 
and a `setPerson(Person person)` setter 
+in `ScopeActionB` and you need to make sure you specify the key (you don't 
need this if you only use one action, as in 
+the example above). Without the key, the scope interceptor will store your 
variables, but won't set them on the other action.
diff --git a/source/core-developers/scoped-model-driven-interceptor.md 
b/source/core-developers/scoped-model-driven-interceptor.md
index d1e1b76..ede2de9 100644
--- a/source/core-developers/scoped-model-driven-interceptor.md
+++ b/source/core-developers/scoped-model-driven-interceptor.md
@@ -1,60 +1,31 @@
 ---
-layout: core-developers
+layout: default
 title: Scoped Model Driven Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Scoped Model Driven Interceptor
 
+An interceptor that enables scoped model-driven actions.
 
-
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
 {% endcomment %}
-<p>
- An interceptor that enables scoped model-driven actions.
-
- <p>This interceptor only activates on actions that implement the {@link 
ScopedModelDriven} interface.  If
- detected, it will retrieve the model class from the configured scope, then 
provide it to the Action.</p>
+This interceptor only activates on actions that implement the 
`ScopedModelDriven` interface. If detected, it will 
+retrieve the model class from the configured scope, then provide it to the 
Action.
   
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
 {% endcomment %}
-
 ## Parameters
-
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>className - The model class name.  Defaults to the class name of the 
object returned by the getModel() method.</li>
-            
- <li>name - The key to use when storing or retrieving the instance in a scope. 
 Defaults to the model
-            class name.</li>
-
- <li>scope - The scope to store and retrieve the model.  Defaults to 'request' 
but can also be 'session'.</li>
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
 {% endcomment %}
-
+ 
+ - `className` - The model class name.  Defaults to the class name of the 
object returned by the `getModel()` method.
+ - `name` - The key to use when storing or retrieving the instance in a scope. 
 Defaults to the model class name.
+ - `scope` - The scope to store and retrieve the model.  Defaults to 'request' 
but can also be 'session'.
+ 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
 {% endcomment %}
-<p>
- There are no known extension points for this interceptor.
-
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
 {% endcomment %}
+There are no known extension points for this interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
 {% endcomment %}
-
 ```xml
- 
  <-- Basic usage -->
  <interceptor name="scopedModelDriven" 
class="com.opensymphony.interceptor.ScopedModelDrivenInterceptor" />
  
@@ -64,8 +35,4 @@ title: Scoped Model Driven Interceptor
       <param name="name">gangsterForm</param>
       <param name="className">com.opensymphony.example.GangsterForm</param>
   </interceptor>
- 
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
 {% endcomment %}
diff --git a/source/core-developers/servlet-config-interceptor.md 
b/source/core-developers/servlet-config-interceptor.md
index e1faf14..2b512cf 100644
--- a/source/core-developers/servlet-config-interceptor.md
+++ b/source/core-developers/servlet-config-interceptor.md
@@ -1,86 +1,43 @@
 ---
-layout: core-developers
+layout: default
 title: Servlet Config Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Servlet Config Interceptor
 
-
-
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.ServletConfigInterceptor
 {% endcomment %}
-<p> <p>
- An interceptor which sets action properties based on the interfaces an action 
implements. For example, if the action
- implements {@link ParameterAware} then the action context's parameter map 
will be set on it.
- </p>
-
- <p>This interceptor is designed to set all properties an action needs if it's 
aware of servlet parameters, the
- servlet context, the session, etc. Interfaces that it supports are:
- </p>
-
- <ul>
-
- <li>{@link ServletContextAware}</li>
-
- <li>{@link ServletRequestAware}</li>
-
- <li>{@link ServletResponseAware}</li>
-
- <li>{@link ParameterAware} - deprecated since 2.5.4, please use {@link 
HttpParametersAware}</li>
-
- <li>{@link HttpParametersAware}</li>
-
- <li>{@link RequestAware}</li>
-
- <li>{@link SessionAware}</li>
-
- <li>{@link ApplicationAware}</li>
-
- <li>{@link PrincipalAware}</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.ServletConfigInterceptor
 {% endcomment %}
+An interceptor which sets action properties based on the interfaces an action 
implements. For example, if the action
+implements `ParameterAware` then the action context's parameter map will be 
set on it.
+
+This interceptor is designed to set all properties an action needs if it's 
aware of servlet parameters, the servlet 
+context, the session, etc. Interfaces that it supports are:
+ 
+ - `ServletContextAware`
+ - `ServletRequestAware`
+ - `ServletResponseAware`
+ - `ParameterAware` - deprecated since 2.5.4, please use `HttpParametersAware`
+ - `HttpParametersAware`
+ - `RequestAware`
+ - `SessionAware`
+ - `ApplicationAware`
+ - `PrincipalAware`
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.ServletConfigInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>None</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.ServletConfigInterceptor
 {% endcomment %}
+There are no parameters for this interceptor.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.ServletConfigInterceptor
 {% endcomment %}
-<p>
- <p>There are no known extension points for this interceptor.</p>
-
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.ServletConfigInterceptor
 {% endcomment %}
+There are no known extension points for this interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.ServletConfigInterceptor
 {% endcomment %}
-
 ```xml
  <action name="someAction" class="com.examples.SomeAction">
      <interceptor-ref name="servletConfig"/>
      <interceptor-ref name="basicStack"/>
      <result name="success">good_result.ftl</result>
  </action>
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.ServletConfigInterceptor
 {% endcomment %}
diff --git a/source/core-developers/static-parameters-interceptor.md 
b/source/core-developers/static-parameters-interceptor.md
index a1e987a..488e9de 100644
--- a/source/core-developers/static-parameters-interceptor.md
+++ b/source/core-developers/static-parameters-interceptor.md
@@ -1,55 +1,29 @@
 ---
-layout: core-developers
+layout: default
 title: Static Parameters Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Static Parameters Interceptor
 
+This interceptor populates the action with the static parameters defined in 
the action configuration. If the action 
+implements `Parameterizable`, a map of the static parameters will be also be 
passed directly to the action. The static 
+params will be added to the request params map, unless `merge` is set to false.
 
-
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
 {% endcomment %}
-<p>
- This interceptor populates the action with the static parameters defined in 
the action configuration. If the action
- implements {@link Parameterizable}, a map of the static parameters will be 
also be passed directly to the action.
- The static params will be added to the request params map, unless "merge" is 
set to false.
-
- <p> Parameters are typically defined with <param> elements within 
xwork.xml.</p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
 {% endcomment %}
+Parameters are typically defined with `<param>` elements within `struts.xml.`
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>None</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
 {% endcomment %}
+There are no parameters for this interceptor.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
 {% endcomment %}
-<p>
- <p>There are no extension points to this interceptor.</p>
-
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
 {% endcomment %}
+There are no extension points to this interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
 {% endcomment %}
-
 ```xml
  <action name="someAction" class="com.examples.SomeAction">
      <interceptor-ref name="staticParams">
@@ -58,7 +32,4 @@ title: Static Parameters Interceptor
      </interceptor-ref>
      <result name="success">good_result.ftl</result>
  </action>
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
 {% endcomment %}
diff --git a/source/core-developers/timer-interceptor.md 
b/source/core-developers/timer-interceptor.md
index 2d53c43..bd999c6 100644
--- a/source/core-developers/timer-interceptor.md
+++ b/source/core-developers/timer-interceptor.md
@@ -1,56 +1,33 @@
 ---
-layout: core-developers
+layout: default
 title: Timer Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Timer Interceptor
 
+**DEPRECATED**
 
-
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.TimerInterceptor
 {% endcomment %}
-<p> This interceptor logs the amount of time in milliseconds. In order for 
this interceptor to work properly, the
- logging framework must be set to at least the <tt>INFO</tt> level.
- This interceptor relies on the <a 
href="http://jakarta.apache.org/commons/logging/";>Commons Logging API</a> to
- report its execution-time value.
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.TimerInterceptor
 {% endcomment %}
+This interceptor logs the amount of time in milliseconds. In order for this 
interceptor to work properly, the logging 
+framework must be set to at least the `INFO` level.  This interceptor relies 
on the [Commons Logging API](http://jakarta.apache.org/commons/logging/) 
+to report its execution-time value.
 
 ## Parameters
 
+ - `logLevel` (optional) - what log level should we use (`trace, debug, info, 
warn, error, fatal`)? - default is `info`
+ - `logCategory` (optional) - If provided we would use this category (eg. 
`com.mycompany.app`).
+   Default is to use `com.opensymphony.xwork2.interceptor.TimerInterceptor`.
 
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.TimerInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>logLevel (optional) - what log level should we use (<code>trace, debug, 
info, warn, error, fatal</code>)? - defaut is <code>info</code></li>
-
- <li>logCategory (optional) - If provided we would use this category (eg. 
<code>com.mycompany.app</code>).
- Default is to use 
<code>com.opensymphony.xwork2.interceptor.TimerInterceptor</code>.</li>
-
- </ul>
-
- The parameters above enables us to log all action execution times in our own 
logfile.
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.TimerInterceptor
 {% endcomment %}
+The parameters above enables us to log all action execution times in our own 
logfile.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.TimerInterceptor
 {% endcomment %}
-<p> This interceptor can be extended to provide custom message format. Users 
should override the
- <code>invokeUnderTiming</code> method.
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.interceptor.TimerInterceptor
 {% endcomment %}
+This interceptor can be extended to provide custom message format. Users 
should override the `invokeUnderTiming` method.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.TimerInterceptor
 {% endcomment %}
-
 ```xml
  <!-- records only the action's execution time -->
  <action name="someAction" class="com.examples.SomeAction">
@@ -65,7 +42,4 @@ title: Timer Interceptor
      <interceptor-ref name="completeStack"/>
      <result name="success">good_result.ftl</result>
  </action>
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.interceptor.TimerInterceptor
 {% endcomment %}
diff --git a/source/core-developers/token-interceptor.md 
b/source/core-developers/token-interceptor.md
index e5fc3ed..79f4d64 100644
--- a/source/core-developers/token-interceptor.md
+++ b/source/core-developers/token-interceptor.md
@@ -1,82 +1,45 @@
 ---
-layout: core-developers
+layout: default
 title: Token Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Token Interceptor
 
+Ensures that only one request per token is processed. This interceptor can 
make sure that back buttons and double clicks 
+don't cause un-intended side affects. For example, you can use this to prevent 
careless users who might double click on 
+a "checkout" button at an online store. This interceptor uses a fairly 
primitive technique for when an invalid token is 
+found: it returns the result `invalid.token`, which can be mapped in your 
action configuration.
+A more complex implementation, {@link TokenSessionStoreInterceptor}, can 
provide much better logic for when invalid 
+tokens are found.
 
+> Note: To set a token in your form, you should use the <b>token tag</b>. This 
tag is required and must be used 
+> in the forms that submit to actions protected by this interceptor. Any 
request that does not provide a token (using
+> the token tag) will be processed as a request with an invalid token.
 
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.TokenInterceptor 
{% endcomment %}
-<p> <p>
- Ensures that only one request per token is processed. This interceptor can 
make sure that back buttons and double
- clicks don't cause un-intended side affects. For example, you can use this to 
prevent careless users who might double
- click on a "checkout" button at an online store. This interceptor uses a 
fairly primitive technique for when an
- invalid token is found: it returns the result <b>invalid.token</b>, which can 
be mapped in your action configuration.
- A more complex implementation, {@link TokenSessionStoreInterceptor}, can 
provide much better logic for when invalid
- tokens are found.
- </p>
+Internationalization Note: The following key could be used to 
internationalized the action errors generated by this 
+token interceptor:
+ 
+ - `struts.messages.invalid.token`
 
- <p>
- <b>Note:</b> To set a token in your form, you should use the <b>token 
tag</b>. This tag is required and must be used
- in the forms that submit to actions protected by this interceptor. Any 
request that does not provide a token (using
- the token tag) will be processed as a request with an invalid token.
- </p>
-
- <p>
- <b>Internationalization Note:</b> The following key could be used to 
internationalized the action errors generated
- by this token interceptor
- </p>
-
- <ul>
-    <li>struts.messages.invalid.token</li>
- </ul>
-
- <p>
- <b>NOTE:</b> As this method extends off MethodFilterInterceptor, it is 
capable of
- deciding if it is applicable only to selective methods in the action class. 
See
- <code>MethodFilterInterceptor</code> for more info.
- </p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.TokenInterceptor 
{% endcomment %}
+> NOTE: As this method extends off MethodFilterInterceptor, it is capable of 
deciding if it is applicable only 
+> to selective methods in the action class. See `MethodFilterInterceptor` for 
more info.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.TokenInterceptor 
{% endcomment %}
-<p>
- <ul>
-
- <li>None</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.TokenInterceptor 
{% endcomment %}
+There are no parameters for this interceptor.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.TokenInterceptor 
{% endcomment %}
-<p> <p>
- While not very common for users to extend, this interceptor is extended by 
the {@link TokenSessionStoreInterceptor}.
- The {@link #handleInvalidToken}  and {@link #handleValidToken} methods are 
protected and available for more
- interesting logic, such as done with the token session interceptor.
- </p>
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.TokenInterceptor 
{% endcomment %}
+While not very common for users to extend, this interceptor is extended by the 
`TokenSessionStoreInterceptor`.
+The `#handleInvalidToken`  and `#handleValidToken` methods are protected and 
available for more interesting logic, 
+such as done with the token session interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.TokenInterceptor
 {% endcomment %}
-
 ```xml
-
  <action name="someAction" class="com.examples.SomeAction">
      <interceptor-ref name="token"/>
      <interceptor-ref name="basicStack"/>
@@ -92,9 +55,4 @@ title: Token Interceptor
      <interceptor-ref name="basicStack"/>
      <result name="success">good_result.ftl</result>
  </action>
-
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.TokenInterceptor
 {% endcomment %}
-
diff --git a/source/core-developers/token-session-interceptor.md 
b/source/core-developers/token-session-interceptor.md
index 2098648..1845d5d 100644
--- a/source/core-developers/token-session-interceptor.md
+++ b/source/core-developers/token-session-interceptor.md
@@ -1,65 +1,34 @@
 ---
-layout: core-developers
+layout: default
 title: Token Session Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Token Session Interceptor
 
+This interceptor builds off of the [Token 
Interceptor](token-interceptor.html), providing advanced logic for handling 
+invalid tokens. Unlike the normal token interceptor, this interceptor will 
attempt to provide intelligent fail-over 
+in the event of multiple requests using the same session. That is, it will 
block subsequent requests until the first 
+request is complete, and then instead of returning the <i>invalid.token</i> 
code, it will attempt to display the same 
+response that the original, valid action invocation would have displayed if no 
multiple requests were submitted 
+in the first place.
 
-
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.TokenSessionStoreInterceptor
 {% endcomment %}
-<p> <p>
- This interceptor builds off of the {@link TokenInterceptor}, providing 
advanced logic for handling invalid tokens.
- Unlike the normal token interceptor, this interceptor will attempt to provide 
intelligent fail-over in the event of
- multiple requests using the same session. That is, it will block subsequent 
requests until the first request is
- complete, and then instead of returning the <i>invalid.token</i> code, it 
will attempt to display the same response
- that the original, valid action invocation would have displayed if no 
multiple requests were submitted in the first
- place.
- </p>
-
- <p>
- <b>NOTE:</b> As this method extends off MethodFilterInterceptor, it is 
capable of
- deciding if it is applicable only to selective methods in the action class. 
See
- <code>MethodFilterInterceptor</code> for more info.
- </p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.interceptor.TokenSessionStoreInterceptor
 {% endcomment %}
+> NOTE: As this method extends off MethodFilterInterceptor, it is capable of 
deciding if it is applicable only 
+> to selective methods in the action class. See `MethodFilterInterceptor` for 
more info.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.TokenSessionStoreInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>None</li>
-
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=org.apache.struts2.interceptor.TokenSessionStoreInterceptor
 {% endcomment %}
+There are no parameters for this interceptor.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.TokenSessionStoreInterceptor
 {% endcomment %}
-<p> <p>
- There are no known extension points for this interceptor.
- </p>
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=org.apache.struts2.interceptor.TokenSessionStoreInterceptor
 {% endcomment %}
+There are no known extension points for this interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.TokenSessionStoreInterceptor
 {% endcomment %}
-
 ```xml
-
  <action name="someAction" class="com.examples.SomeAction">
      <interceptor-ref name="tokenSession/>
      <interceptor-ref name="basicStack"/>
@@ -75,8 +44,4 @@ title: Token Session Interceptor
      <interceptor-ref name="basicStack"/>
      <result name="success">good_result.ftl</result>
  </action>
-
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.interceptor.TokenSessionStoreInterceptor
 {% endcomment %}
diff --git a/source/core-developers/validation-interceptor.md 
b/source/core-developers/validation-interceptor.md
index 9e56860..a882402 100644
--- a/source/core-developers/validation-interceptor.md
+++ b/source/core-developers/validation-interceptor.md
@@ -1,84 +1,42 @@
 ---
-layout: core-developers
+layout: default
 title: Validation Interceptor
+parent:
+    title: Interceptors
+    url: interceptors.html
 ---
 
 # Validation Interceptor
 
+This interceptor runs the action through the standard validation framework, 
which in turn checks the action against any 
+validation rules (found in files such as `ActionClass-validation.xml`) and 
adds field-level and action-level error 
+messages (provided that the action implements `ValidationAware`). This 
interceptor is often one of the last (or second 
+to last) interceptors applied in a stack, as it assumes that all values have 
already been set on the action.
 
+This interceptor does nothing if the name of the method being invoked is 
specified in the `excludeMethods` parameter. 
+`excludeMethods` accepts a comma-delimited list of method names. For example, 
requests to `foo!input.action<`
+and `foo!back.action` will be skipped by this interceptor if you set the 
`excludeMethods` parameter to `input, back`.
+ 
+The workflow of the action request does not change due to this interceptor. 
Rather, this interceptor is often used 
+in conjunction with the `workflow` interceptor.
 
-{% comment %}start snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.validator.ValidationInterceptor
 {% endcomment %}
-<p>
- <p>
- This interceptor runs the action through the standard validation framework, 
which in turn checks the action against
- any validation rules (found in files such as 
<i>ActionClass-validation.xml</i>) and adds field-level and action-level
- error messages (provided that the action implements {@link ValidationAware}). 
This interceptor
- is often one of the last (or second to last) interceptors applied in a stack, 
as it assumes that all values have
- already been set on the action.
- </p>
-
- <p>
- This interceptor does nothing if the name of the method being invoked is 
specified in the <b>excludeMethods</b>
- parameter. <b>excludeMethods</b> accepts a comma-delimited list of method 
names. For example, requests to
- <b>foo!input.action</b> and <b>foo!back.action</b> will be skipped by this 
interceptor if you set the
- <b>excludeMethods</b> parameter to "input, back".
- </p>
-
- <p>
- The workflow of the action request does not change due to this interceptor. 
Rather,
- this interceptor is often used in conjunction with the <b>workflow</b> 
interceptor.
- </p>
-
- <p>
- <b>NOTE:</b> As this method extends off MethodFilterInterceptor, it is 
capable of
- deciding if it is applicable only to selective methods in the action class. 
See
- <code>MethodFilterInterceptor</code> for more info.
- </p>
-
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=com.opensymphony.xwork2.validator.ValidationInterceptor
 {% endcomment %}
+> NOTE: As this method extends off MethodFilterInterceptor, it is capable of 
deciding if it is applicable only to selective 
+methods in the action class. See `MethodFilterInterceptor` for more info.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.validator.ValidationInterceptor
 {% endcomment %}
-<p>
- <ul>
-
- <li>alwaysInvokeValidate - Defaults to true. If true validate() method will 
always
- be invoked, otherwise it will not.</li>
-
- <li>programmatic - Defaults to true. If true and the action is Validateable 
call validate(),
- and any method that starts with "validate".
- </li>
- 
- <li>declarative - Defaults to true. Perform validation based on xml or 
annotations.</li>
- 
- </ul>
-
-</p>
-{% comment %}end snippet 
id=parameters|javadoc=true|url=com.opensymphony.xwork2.validator.ValidationInterceptor
 {% endcomment %}
+ - `alwaysInvokeValidate` - Defaults to true. If true validate() method will 
always be invoked, otherwise it will not.
+ - `programmatic` - Defaults to true. If true and the action is `Validateable` 
call `validate()`, and any method that 
+   starts with `validate`.
+ - `declarative` - Defaults to true. Perform validation based on xml or 
annotations.
 
 ## Extending the Interceptor
 
-
-
-{% comment %}start snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.validator.ValidationInterceptor
 {% endcomment %}
-<p>
- There are no known extension points for this interceptor.
-
-</p>
-{% comment %}end snippet 
id=extending|javadoc=true|url=com.opensymphony.xwork2.validator.ValidationInterceptor
 {% endcomment %}
+There are no known extension points for this interceptor.
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.validator.ValidationInterceptor
 {% endcomment %}
-
 ```xml
- 
  <action name="someAction" class="com.examples.SomeAction">
      <interceptor-ref name="params"/>
      <interceptor-ref name="validation"/>
@@ -107,9 +65,4 @@ title: Validation Interceptor
      <interceptor-ref name="workflow"/>
      <result name="success">good_result.ftl</result>
  </action>
-
-
-
 ```
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.validator.ValidationInterceptor
 {% endcomment %}

-- 
To stop receiving notification emails like this one, please contact
"commits@struts.apache.org" <commits@struts.apache.org>.

Reply via email to