Modified: websites/production/struts/content/helping.html
==============================================================================
--- websites/production/struts/content/helping.html (original)
+++ websites/production/struts/content/helping.html Wed Dec 31 10:10:27 2014
@@ -10,9 +10,11 @@
   <title>Helping</title>
 
   <link 
href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic"
 rel="stylesheet" type="text/css">
-  <link rel="stylesheet" href="css/main.css">
+  <link 
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" 
rel="stylesheet">
+  <link href="css/main.css" rel="stylesheet">
+  <link href="css/custom.css" rel="stylesheet">
 
-  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+  <script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
   <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="js/community.js"></script>
 </head>
@@ -118,209 +120,257 @@
 
 <article class="container">
   <section class="col-md-12">
-    <h1>How to Help FAQ</h1>
+    <h1 id="how-to-help-faq">How to Help FAQ</h1>
 
 <ul>
-<li><h3>What can my company do to help support Apache Struts?</h3>
+  <li>
+    <h3 id="what-can-my-company-do-to-help-support-apache-struts">What can my 
company do to help support Apache Struts?</h3>
+  </li>
+</ul>
 
 <p>Apache Struts is an all volunteer product. Our customers are the volunteers 
who donate their time and
-energy to supporting the product. If you want to support Apache Struts, and 
become one of our
-customers, then you need to get involved and become a volunteer.</p>
+  energy to supporting the product. If you want to support Apache Struts, and 
become one of our
+  customers, then you need to get involved and become a volunteer.</p>
 
 <p>Our challenge to any team using an Apache Struts product is to donate the 
time of one team member
-one afternoon a week (or more if you can spare the resources).
-Have your team member browse <a href="#issues">JIRA</a> for any issues without 
a <a href="#patches">patch</a> or unit test,
-and <a href="#contribute">add the patch or test</a>. (Please note that we do 
not use @author tags in our
-JavaDocs an documentation.)
-If your patch includes an @author tag, we would have to ask that it be 
removed.</p>
-
-<p>If an Apache Struts product doesn&#39;t do what <em>you</em> want, it&#39;s 
up to <strong>you</strong> to step up and propose the patch.
-If an Apache Struts product doesn&#39;t ship as often as you would like, 
it&#39;s up to you to step up with
-the tests and fixes that get a release out the door.
-<a href="http://jakarta.apache.org/site/contributing.html";>(Like Craig 
McClanahan did for Tomcat)</a>.</p>
+  one afternoon a week (or more if you can spare the resources).
+  Have your team member browse <a href="#issues">JIRA</a> for any issues 
without a <a href="#patches">patch</a> or unit test,
+  and <a href="#contribute">add the patch or test</a>. (Please note that we do 
not use @author tags in our
+  JavaDocs an documentation.)
+  If your patch includes an @author tag, we would have to ask that it be 
removed.</p>
+
+<p>If an Apache Struts product doesn’t do what <em>you</em> want, it’s up 
to <strong>you</strong> to step up and propose the patch.
+  If an Apache Struts product doesn’t ship as often as you would like, 
it’s up to you to step up with
+  the tests and fixes that get a release out the door.
+  <a href="http://jakarta.apache.org/site/contributing.html";>(Like Craig 
McClanahan did for Tomcat)</a>.</p>
 
 <p>If Struts does do what you want, help others become involved by turning 
your war stories into FAQs
-and how-tos that we can make part of the <a 
href="#documentation">documentation</a>.
-The mailing list is very active and trundling through the archives is no 
picnic. We can always use
-volunteers who can reduce the best threads to coherent articles we can share 
with others.</p>
-
-<p>We don&#39;t sell Struts for money, but anyone who wants to be our customer 
can pay us back by donating
-the time and energy that money represents.</p></li>
-<li><h3><a name="patches"></a>How do I create a patch?</h3>
+  and how-tos that we can make part of the <a 
href="#documentation">documentation</a>.
+  The mailing list is very active and trundling through the archives is no 
picnic. We can always use
+  volunteers who can reduce the best threads to coherent articles we can share 
with others.</p>
+
+<p>We don’t sell Struts for money, but anyone who wants to be our customer 
can pay us back by donating
+  the time and energy that money represents.</p>
+
+<ul>
+  <li>
+    <h3 id="a-namepatchesahow-do-i-create-a-patch"><a name="patches"></a>How 
do I create a patch?</h3>
+  </li>
+</ul>
 
 <p>A patch is a machine-readable script that can automatically recreate a 
change to a text file,
-including source code and documentation. The patch format is also 
human-readable. Developers often pass
-patches around to discuss a change before applying it to the main 
repository.</p>
+  including source code and documentation. The patch format is also 
human-readable. Developers often pass
+  patches around to discuss a change before applying it to the main 
repository.</p>
 
 <p>The best way to affect a change to the source code or documentation is to 
provide a patch.
-Apache Struts committers can then review your patch and decide whether to 
apply it to the main repository.</p>
+  Apache Struts committers can then review your patch and decide whether to 
apply it to the main repository.</p>
 
 <p>Please be aware that the Struts project follows general coding conventions. 
In short, these are
-the official Java coding conventions plus the rule to favor spaces over tabs 
for indenting. See more
-details at <a 
href="https://cwiki.apache.org/confluence/display/S2WIKI/Struts+2+Coding+Conventions";>Struts
 2 Coding Conventions (Wiki)</a></p>
+  the official Java coding conventions plus the rule to favor spaces over tabs 
for indenting. See more
+  details at <a 
href="https://cwiki.apache.org/confluence/display/S2WIKI/Struts+2+Coding+Conventions";>Struts
 2 Coding Conventions (Wiki)</a></p>
 
 <p>To create a patch, you first have to <a 
href="git-for-struts.html">checkout</a> a copy of the source code
-or documentation from the main repository. You can then change your copy, and 
create the patch using a simple
-<a href="http://git-scm.com/";>Git</a> command, like this:</p>
-<div class="highlight"><pre><code class="text language-text" 
data-lang="text">git diff Main.java &gt;&gt; patchfile.txt
-</code></pre></div>
+  or documentation from the main repository. You can then change your copy, 
and create the patch using a simple
+  <a href="http://git-scm.com/";>Git</a> command, like this:</p>
+
+<pre><code>    git diff Main.java &gt;&gt; patchfile.txt
+</code></pre>
+
 <p>Then, create a <a href="#issues">JIRA issue</a>about the change, and attach 
the patch file.</p>
 
 <p>Some Apache projects ask that you to submit your patch to the mailing list. 
We would prefer that you
-create a JIRA issue and then attach the patch to the issue. To do this, you 
must first create the issue,
-and then modify the report to add your patch. We realize this is a bit clumsy, 
but it keeps us from
-losing things, and helps to ensure that your patch will be attended.</p>
+  create a JIRA issue and then attach the patch to the issue. To do this, you 
must first create the issue,
+  and then modify the report to add your patch. We realize this is a bit 
clumsy, but it keeps us from
+  losing things, and helps to ensure that your patch will be attended.</p>
 
 <p>The <a 
href="http://www.netbeans.org/community/contribute/patches.html";>NetBeans 
community</a> also has a helpful section on the
-subject of creating patches.</p></li>
-<li><h3><a name="issues"></a>How can I report defects or suggest features?</h3>
+  subject of creating patches.</p>
+
+<ul>
+  <li>
+    <h3 id="a-nameissuesahow-can-i-report-defects-or-suggest-features"><a 
name="issues"></a>How can I report defects or suggest features?</h3>
+  </li>
+</ul>
 
 <p>Tracking of defect reports and enhancement suggestions for Apache Struts 
products is handled through the
-<a href="https://issues.apache.org/jira/browse/WW";>Apache Struts JIRA 
instance</a>.
-Please select the appropriate Apache Struts product from the list, and then 
select the component to which
-you feel this report relates. You will automatically be notified by email as 
the status of your defect or
-enhancement report changes. Please be sure to read
-<a href="http://www.chiark.greenend.org.uk/%7Esgtatham/bugs.html";>How to 
Report Bugs Effectively</a>
-before posting a report.</p>
+  <a href="https://issues.apache.org/jira/browse/WW";>Apache Struts JIRA 
instance</a>.
+  Please select the appropriate Apache Struts product from the list, and then 
select the component to which
+  you feel this report relates. You will automatically be notified by email as 
the status of your defect or
+  enhancement report changes. Please be sure to read
+  <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html";>How to 
Report Bugs Effectively</a>
+  before posting a report.</p>
 
-<p>If you can&#39;t write a <a href="#patches">patch</a> to address your 
issue, a unit test that demonstrates the problem is also welcome.
-(And, of course, unit tests that prove your patch works are equally 
welcome.)</p>
+<p>If you can’t write a <a href="#patches">patch</a> to address your issue, 
a unit test that demonstrates the problem is also welcome.
+  (And, of course, unit tests that prove your patch works are equally 
welcome.)</p>
 
 <p>If the defect or feature is already being tracked, you can vote for the 
issue and call more attention to it.
-Each user can cast up to six votes at a time.</p>
+  Each user can cast up to six votes at a time.</p>
 
 <p>If there is a patch attached to the issue, you can also try applying to 
your local copy of Struts,
-and report whether it worked for you. Feedback from developers regarding a 
proposed patch is really quite
-helpful.
-Don&#39;t hesitate to add a &quot;works for me&quot; note to a ticket if 
you&#39;ve tried the patch yourself and found it useful.</p>
+  and report whether it worked for you. Feedback from developers regarding a 
proposed patch is really quite
+  helpful.
+  Don’t hesitate to add a “works for me” note to a ticket if you’ve 
tried the patch yourself and found it useful.</p>
+
+<p>Feature suggestions are also maintained in the <a 
href="https://issues.apache.org/jira/browse/WW";>JIRA issue tracker</a>.</p>
 
-<p>Feature suggestions are also maintained in the <a 
href="https://issues.apache.org/jira/browse/WW";>JIRA issue tracker</a>.</p></li>
-<li><h3><a name="contribute"></a>How can I contribute to the Struts source 
code?</h3>
+<ul>
+  <li>
+    <h3 
id="a-namecontributeahow-can-i-contribute-to-the-struts-source-code"><a 
name="contribute"></a>How can I contribute to the Struts source code?</h3>
+  </li>
+</ul>
 
 <p>A very good place to start is by <strong>reviewing the list of open 
issues</strong> and pending feature suggestions in the
-<a href="#issues">issue tracker</a>.
-If you see an issue that needs a patch you can write, feel free to annex your 
patch. If you see an issue
-that needs a unit test to prove it&#39;s fixed, feel free to annex your test 
case.
-If someone has posted a patch to an issue you&#39;d like to see resolved, 
apply the patch to your local development
-copy of Struts.
-Then let us know if it works for you, and if it does, cast your vote for the 
issue and its patch.</p>
+  <a href="#issues">issue tracker</a>.
+  If you see an issue that needs a patch you can write, feel free to annex 
your patch. If you see an issue
+  that needs a unit test to prove it’s fixed, feel free to annex your test 
case.
+  If someone has posted a patch to an issue you’d like to see resolved, 
apply the patch to your local development
+  copy of Struts.
+  Then let us know if it works for you, and if it does, cast your vote for the 
issue and its patch.</p>
 
 <p>If none of the pending issues scratch your itch, another good place to 
start is by <strong>contributing unit tests</strong>
-for existing features (even those that still work).</p>
+  for existing features (even those that still work).</p>
 
 <p>You can upload a proposed <a href="#patches">patch</a> to either the code 
or documentation by creating a feature
-suggestion in the <a href="#issues">issue tracker</a>.
-<strong>After creating the ticket</strong> you can go back and upload a file 
containing your patch.</p>
+  suggestion in the <a href="#issues">issue tracker</a>.
+  <strong>After creating the ticket</strong> you can go back and upload a file 
containing your patch.</p>
 
 <p>Our current approach to <a href="kickstart.html#tests">unit testing</a> 
works fairly well for exercising most method-level
-stuff, but does not really address situations of dynamic behavior -- most 
particularly the execution of custom tags
-for Struts.
-You can try to fake what a JSP container does, but a much more reliable 
testing regime would actually execute
-the tag in a real container.</p></li>
-<li><h3><a name="documentation"></a>How can I contribute to the 
documentation?</h3>
+  stuff, but does not really address situations of dynamic behavior – most 
particularly the execution of custom tags
+  for Struts.
+  You can try to fake what a JSP container does, but a much more reliable 
testing regime would actually execute
+  the tag in a real container.</p>
+
+<ul>
+  <li>
+    <h3 id="a-namedocumentationahow-can-i-contribute-to-the-documentation"><a 
name="documentation"></a>How can I contribute to the documentation?</h3>
+  </li>
+</ul>
 
 <p>The Struts 2 documentation is maintained using the Atlassian Confluence 
wiki software and automatically
-exported to HTML for viewing on the website. To help with the Struts 2 
documentation, you must create
-an account at <a 
href="http://cwiki.apache.org/confluence";>cwki.apache.org/confluence</a>, AND 
you must file a
-<a href="http://apache.org/licenses/icla.txt";>Contributor License 
Agreement</a> with the ASF.</p>
+  exported to HTML for viewing on the website. To help with the Struts 2 
documentation, you must create
+  an account at <a 
href="http://cwiki.apache.org/confluence";>cwki.apache.org/confluence</a>, AND 
you must file a
+  <a href="http://apache.org/licenses/icla.txt";>Contributor License 
Agreement</a> with the ASF.</p>
 
 <p>Other ways to help out with the documentation is to just leave a comment on 
a page that needs fixing.
-If you have a cwiki Confluence account, you can also create pages on the
-<a href="http://cwiki.apache.org/S2WIKI/home.html";>Struts 2 Wiki</a> without 
filing a CLA.</p>
+  If you have a cwiki Confluence account, you can also create pages on the
+  <a href="http://cwiki.apache.org/S2WIKI/home.html";>Struts 2 Wiki</a> without 
filing a CLA.</p>
 
 <p>If you are submitting new material, it is important to decide exactly where 
you would put this
-in relation to the rest of the documentation.
-Again, someone has to figure that out before it can be added, and that someone 
might as well be you.</p></li>
-<li><h3><a name="release"></a>So when is the next release coming out?</h3>
+  in relation to the rest of the documentation.
+  Again, someone has to figure that out before it can be added, and that 
someone might as well be you.</p>
+
+<ul>
+  <li>
+    <h3 id="a-namereleaseaso-when-is-the-next-release-coming-out"><a 
name="release"></a>So when is the next release coming out?</h3>
+  </li>
+</ul>
 
 <p>Here is the truth regarding releases:</p>
 
 <p>Apache products are released on the basis of merit, and ~not~ according to 
a strict timetable.
-The volunteers devote whatever time they can to work on the product. But all 
volunteers have real jobs
-and real lives, that do take precedence. Since Struts does not have paid 
personnel working on the project,
-we simply cannot make date-oriented commitments.</p>
+  The volunteers devote whatever time they can to work on the product. But all 
volunteers have real jobs
+  and real lives, that do take precedence. Since Struts does not have paid 
personnel working on the project,
+  we simply cannot make date-oriented commitments.</p>
 
 <p>The bottom line is that Apache takes releases very seriously. We do not 
compromise the quality of our software by
-watching the calendar (and then ship something ready or not). A release is 
ready when it is ready.</p>
+  watching the calendar (and then ship something ready or not). A release is 
ready when it is ready.</p>
 
 <p>That may sound flip, but it ~is~ the truth. The delivery of 
production-quality, leading-edge software
-is not something anyone can prognosticate. If anyone tries, they are lying to 
you.
-That, we won&#39;t do ;-)</p>
+  is not something anyone can prognosticate. If anyone tries, they are lying 
to you.
+  That, we won’t do ;-)</p>
 
 <p>What we ~will~ do is release all of our development software as soon as it 
is developed.
-This way you can judge for yourself how quickly the development is proceeding, 
and whether what is being
-developed will meet your needs.
-If you need a feature right now, you can use the nightly build, or roll your 
own patch. There are no internal
-code repositories, private development lists, secret chat rooms, or conference 
calls.
-What you see is what we got. If you are following the DEV list, then you know 
everything the developers know.
-Really, you do.</p>
+  This way you can judge for yourself how quickly the development is 
proceeding, and whether what is being
+  developed will meet your needs.
+  If you need a feature right now, you can use the nightly build, or roll your 
own patch. There are no internal
+  code repositories, private development lists, secret chat rooms, or 
conference calls.
+  What you see is what we got. If you are following the DEV list, then you 
know everything the developers know.
+  Really, you do.</p>
 
 <p><em>So, what do you tell your team</em>?
-If you can ship your application based on the nightly build of your choice, 
then consider that an option.
-You can still ship yours, even if we don&#39;t ship ours, and you will have 
access to all the latest patches or
-enhancements. (Just like we were working down the hall.) If you can only ship 
your application based on a release
-build of Struts, then you should base your development on the release build of 
Struts,
-and keep an eye on what is coming down the pipeline.
-This way you are at least forewarned and forearmed.</p></li>
-<li><h3><a name="release_help"></a>What can I do to help the next release 
along?</h3>
+  If you can ship your application based on the nightly build of your choice, 
then consider that an option.
+  You can still ship yours, even if we don’t ship ours, and you will have 
access to all the latest patches or
+  enhancements. (Just like we were working down the hall.) If you can only 
ship your application based on a release
+  build of Struts, then you should base your development on the release build 
of Struts,
+  and keep an eye on what is coming down the pipeline.
+  This way you are at least forewarned and forearmed.</p>
 
 <ul>
-<li>Most importantly, download the latest <a 
href="builds.html#NightlyBuilds">nightly build</a> or development release
+  <li>
+    <h3 id="a-namereleasehelpawhat-can-i-do-to-help-the-next-release-along"><a 
name="release_help"></a>What can I do to help the next release along?</h3>
+
+    <ul>
+      <li>
+        <p>Most importantly, download the latest <a 
href="builds.html#NightlyBuilds">nightly build</a> or development release
 and test it against your own applications. Report any and all issues or 
suspected issues to
 <a href="#issues">the issue tracker</a>.
 The sooner we resolve any problems, the fewer betas or release candidates we 
will have to distribute before we are done.
-(How do we know when we&#39;re done? -- When we run out of issues =:o) The 
sooner we find them, the sooner we are done.)</li>
-<li><strong>Contribute <a href="kickstart.html#tests">unit tests</a></strong>. 
The closer we get to a release, the more we worry
+(How do we know when we’re done? – When we run out of issues =:o) The 
sooner we find them, the sooner we are done.)</p>
+      </li>
+      <li>
+        <p><strong>Contribute <a href="kickstart.html#tests">unit 
tests</a></strong>. The closer we get to a release, the more we worry
 about breaking something. The more tests we have, the more confident we can be 
when applying patches.
 Tests that prove that a pending issue is actually a defect are the most 
welcome ones.
-But we are eager for any and all tests for any and all features, even those 
that still work =:0).</li>
-<li><strong>Review the list of issues</strong>  at <a href="#issues">the issue 
tracker</a>. If there are any to which you can respond, please
+But we are eager for any and all tests for any and all features, even those 
that still work =:0).</p>
+      </li>
+      <li>
+        <p><strong>Review the list of issues</strong>  at <a 
href="#issues">the issue tracker</a>. If there are any to which you can 
respond, please
 do. If there any patches posted, feel free to test them your system, report 
the results, and cast your vote
-if they work.</li>
-<li><em>Confirm an issue&#39;s category and status</em>. Newbies often post 
feature suggestions or help-desk
-questions as &quot;bugs&quot;. This bloats the list of fixes we (apparently) 
need to apply before the next
+if they work.</p>
+      </li>
+      <li>
+        <p><em>Confirm an issue’s category and status</em>. Newbies often 
post feature suggestions or help-desk
+questions as “bugs”. This bloats the list of fixes we (apparently) need to 
apply before the next
 beta, making it hard to see the forest for the trees.
-If an issue doesn&#39;t seem to be categorized correctly, exercise your best 
judgment and change it.
+If an issue doesn’t seem to be categorized correctly, exercise your best 
judgment and change it.
 If one ticket seems like a duplicate of another, go ahead and enter the change.
 Every modification to the ticket is echoed to the DEV list and automatically 
subjected to peer review.
-Err on the side of doing.</li>
-<li>Use the issue tracker to <strong>vote for issues</strong> you feel should 
be handled first. If an issue on your
-ballot doesn&#39;t include a patch, feel free to try coding one yourself. (In 
a meritocracy, patches are
+Err on the side of doing.</p>
+      </li>
+      <li>
+        <p>Use the issue tracker to <strong>vote for issues</strong> you feel 
should be handled first. If an issue on your
+ballot doesn’t include a patch, feel free to try coding one yourself. (In a 
meritocracy, patches are
 the only votes that matter.)
-Dozens of developers have contributed code or documentation to Struts. You can 
too =:0)</li>
-<li><strong>Answer questions on the user list</strong>. The Committers only 
have a limited amount of time to volunteer.
+Dozens of developers have contributed code or documentation to Struts. You can 
too =:0)</p>
+      </li>
+      <li>
+        <p><strong>Answer questions on the user list</strong>. The Committers 
only have a limited amount of time to volunteer.
 If Developers are supporting each other on the lists, the Committers have more 
time to spend on the next
-release.</li>
-</ul></li>
-<li><h3><a name="decides_help"></a>How can I help make the decisions?</h3>
-
-<p>A guiding principle of the Apache Software Foundation is &quot;them that do 
the work, make the decisions&quot;.
-This phrase is actually a double-entendre. A project will make some decisions 
by voting (very few),
-but the real decisions are made when a volunteer actually does the work. 
Unless someone volunteers to do the work,
-other decisions are meaningless.</p>
+release.</p>
+      </li>
+    </ul>
+  </li>
+  <li>
+    <h3 id="a-namedecideshelpahow-can-i-help-make-the-decisions"><a 
name="decides_help"></a>How can I help make the decisions?</h3>
+  </li>
+</ul>
+
+<p>A guiding principle of the Apache Software Foundation is “them that do 
the work, make the decisions”.
+  This phrase is actually a double-entendre. A project will make some 
decisions by voting (very few),
+  but the real decisions are made when a volunteer actually does the work. 
Unless someone volunteers to do the work,
+  other decisions are meaningless.</p>
 
 <p>In an ASF project, like Apache Struts, volunteers who make sustained 
contributions to the project
-are invited to become &quot;Committers&quot;. In due course, Committers are 
invited to join the Project Management
-Committee (PMC).
-A goal of the ASF is for all Committers to be on the PMC.</p>
-
-<p>By &quot;sustained&quot;, we mean that an individual has been active in the 
project for at least six months.
-The contributions should come in the form of both patches (to code or 
documentation), and posts to the mailing
-lists. Patches must be competent and accepted into the repository. Posts must 
be consistently helpful, friendly,
-and collaborative. The most important characteristic in a prospective 
Committer is an
-amicable demeanor that fosters goodwill.</p>
+  are invited to become “Committers”. In due course, Committers are 
invited to join the Project Management
+  Committee (PMC).
+  A goal of the ASF is for all Committers to be on the PMC.</p>
+
+<p>By “sustained”, we mean that an individual has been active in the 
project for at least six months.
+  The contributions should come in the form of both patches (to code or 
documentation), and posts to the mailing
+  lists. Patches must be competent and accepted into the repository. Posts 
must be consistently helpful, friendly,
+  and collaborative. The most important characteristic in a prospective 
Committer is an
+  amicable demeanor that fosters goodwill.</p>
 
 <p>As PMC members take note of Struts developers who meet our qualifications, 
one of us will call for a vote on
-the internal PMC mailing list. (This usually happens when someone gets tired 
of applying
-the volunteer&#39;s patches!) The internal list is rarely used, and it is 
never used for development discussions.
-If the PMC vote passes, we will send the developer a invitation privately, to 
give the individual a chance to accept
-or discretely decline.
-If the candidate is able to accept, the PMC will announce the new member on 
the dev list.</p>
+  the internal PMC mailing list. (This usually happens when someone gets tired 
of applying
+  the volunteer’s patches!) The internal list is rarely used, and it is 
never used for development discussions.
+  If the PMC vote passes, we will send the developer a invitation privately, 
to give the individual a chance to accept
+  or discretely decline.
+  If the candidate is able to accept, the PMC will announce the new member on 
the dev list.</p>
 
 <p>For more about decision-making, see <a 
href="http://apache.org/foundation/how-it-works.html";>How the ASF Works</a>
-and the <a href="bylaws.html">Apache Struts Charter</a>. For more about 
project infrastructure,
-see &quot;Project Maintenance and Resources&quot; in the <a 
href="http://wiki.apache.org/struts/";>Struts 1 wiki</a>.</p></li>
-</ul>
+  and the <a href="bylaws.html">Apache Struts Charter</a>. For more about 
project infrastructure,
+  see “Project Maintenance and Resources” in the <a 
href="http://wiki.apache.org/struts/";>Struts 1 wiki</a>.</p>
 
   </section>
 </article>
@@ -361,5 +411,19 @@ see &quot;Project Maintenance and Resour
 }(document, 'script', 'facebook-jssdk'));</script>
 
 
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, icon, id;
+    $el = $(el);
+    id = $el.attr('id');
+    icon = '<i class="fa fa-link"></i>';
+    if (id) {
+      return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + 
id).html(icon));
+    }
+  });
+});
+</script>
+
 </body>
 </html>

Modified: websites/production/struts/content/index.html
==============================================================================
--- websites/production/struts/content/index.html (original)
+++ websites/production/struts/content/index.html Wed Dec 31 10:10:27 2014
@@ -10,9 +10,10 @@
   <title>Welcome to the Apache Struts project</title>
 
   <link 
href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic"
 rel="stylesheet" type="text/css">
-  <link rel="stylesheet" href="css/main.css">
+  <link 
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" 
rel="stylesheet">
+  <link href="css/main.css" rel="stylesheet">
 
-  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+  <script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
   <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="js/community.js"></script>
 </head>

Modified: websites/production/struts/content/kickstart.html
==============================================================================
--- websites/production/struts/content/kickstart.html (original)
+++ websites/production/struts/content/kickstart.html Wed Dec 31 10:10:27 2014
@@ -10,9 +10,11 @@
   <title>Kickstart FAQ</title>
 
   <link 
href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic"
 rel="stylesheet" type="text/css">
-  <link rel="stylesheet" href="css/main.css">
+  <link 
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" 
rel="stylesheet">
+  <link href="css/main.css" rel="stylesheet">
+  <link href="css/custom.css" rel="stylesheet">
 
-  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+  <script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
   <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="js/community.js"></script>
 </head>
@@ -118,155 +120,236 @@
 
 <article class="container">
   <section class="col-md-12">
-    <h1>Kickstart FAQ</h1>
+    <h1 id="kickstart-faq">Kickstart FAQ</h1>
 
-<h2>General</h2>
+<h2 id="general">General</h2>
 
 <ul>
-<li><h3>I&#39;m new to Apache Struts. How do I get started?</h3>
-
-<p>The best place to start is with the &quot;best available&quot; <a 
href="downloads.html">release</a>.
-If you are new to Java or web development, as well as Apache Struts, be sure 
to review the
-<a href="primer.html">Key Technologies Primer</a>.</p>
+  <li>
+    <h3 id="im-new-to-apache-struts-how-do-i-get-started">I’m new to Apache 
Struts. How do I get started?</h3>
+  </li>
+</ul>
 
-<p>The main Struts web site includes documentation for the latest 
&quot;General Availability&quot; release
-in each major release series. The development section of the site inclues 
draft documentation
-for upcoming releases. If you are just getting started, focus on the latest 
General
-Availability release, Documentation for past <a 
href="downloads.html">releases</a> is also available.</p>
+<p>The best place to start is with the “best available” <a 
href="downloads.html">release</a>.
+  If you are new to Java or web development, as well as Apache Struts, be sure 
to review the
+  <a href="primer.html">Key Technologies Primer</a>.</p>
+
+<p>The main Struts web site includes documentation for the latest “General 
Availability” release
+  in each major release series. The development section of the site inclues 
draft documentation
+  for upcoming releases. If you are just getting started, focus on the latest 
General
+  Availability release, Documentation for past <a 
href="downloads.html">releases</a> is also available.</p>
 
 <p>If you have questions, you can search the <a href="mail.html#archives">User 
Mailing List archives</a>,
-or <a href="mail.html">post your own question to the list</a>. (Plain old 
Google usually works too!)</p></li>
-<li><h3>Looking at the releases page, some versions seem to be missing. What 
happened to them?</h3>
+  or <a href="mail.html">post your own question to the list</a>. (Plain old 
Google usually works too!)</p>
 
-<p>Apache Struts uses a &quot;milestone build&quot; system to create releases. 
First, we create a build
-with a milestone version number, like Struts 2.0.42, and post the distribution 
in the development area.
-The development group tests the distribution, and then we decide whether or 
not to release it.
-The distribution includes everything that would be released, including the 
documentation and the release notes
-for this version.</p>
+<ul>
+  <li>
+    <h3 
id="looking-at-the-releases-page-some-versions-seem-to-be-missing-what-happened-to-them">Looking
 at the releases page, some versions seem to be missing. What happened to 
them?</h3>
+  </li>
+</ul>
+
+<p>Apache Struts uses a “milestone build” system to create releases. 
First, we create a build
+  with a milestone version number, like Struts 2.0.42, and post the 
distribution in the development area.
+  The development group tests the distribution, and then we decide whether or 
not to release it.
+  The distribution includes everything that would be released, including the 
documentation and the release notes
+  for this version.</p>
 
 <p>If we find a significant problem with the distribution, we may decide not 
to release it, and just leave
-the distribution as a &quot;test build&quot;. The testing may take several 
days, and in the meantime, we want to keep
-the project moving, and so we just go onto the next version number.
-Using our example, the next distribution would be labeled 2.0.43, even if 
version 2.0.42 was never officially
-released.</p>
-
-<p>Often. we will first grade a release as a &quot;beta&quot;, and invite 
other users to test it too. If this second
-round of beta testing goes well, then we may mark the release &quot;General 
Availability&quot;.
-Usually, that designation would also make it the new &quot;Best 
Available&quot; release. In this case, we don&#39;t create
-another distribution, but simply adjust the status of the same set of bits 
that people have been testing all along.</p>
-
-<p>In practice, the milestone build system is fast and efficient and creates 
the fewest number of &quot;candidate builds&quot;
-between releases.</p></li>
-<li><h3>Why is the project called &quot;Struts&quot;?</h3>
-
-<p>It&#39;s a reference to &quot;struts&quot; in the architectural sense, a 
reminder of the nearly invisible pieces that hold up
-buildings, houses, and bridges.</p></li>
-<li><h3>How is Apache Struts licensed?</h3>
+  the distribution as a “test build”. The testing may take several days, 
and in the meantime, we want to keep
+  the project moving, and so we just go onto the next version number.
+  Using our example, the next distribution would be labeled 2.0.43, even if 
version 2.0.42 was never officially
+  released.</p>
+
+<p>Often. we will first grade a release as a “beta”, and invite other 
users to test it too. If this second
+  round of beta testing goes well, then we may mark the release “General 
Availability”.
+  Usually, that designation would also make it the new “Best Available” 
release. In this case, we don’t create
+  another distribution, but simply adjust the status of the same set of bits 
that people have been testing all along.</p>
+
+<p>In practice, the milestone build system is fast and efficient and creates 
the fewest number of “candidate builds”
+  between releases.</p>
+
+<ul>
+  <li>
+    <h3 id="why-is-the-project-called-struts">Why is the project called 
“Struts”?</h3>
+  </li>
+</ul>
+
+<p>It’s a reference to “struts” in the architectural sense, a reminder 
of the nearly invisible pieces that hold up
+  buildings, houses, and bridges.</p>
+
+<ul>
+  <li>
+    <h3 id="how-is-apache-struts-licensed">How is Apache Struts licensed?</h3>
+  </li>
+</ul>
 
 <p>All Apache Struts products are copyrighted software available under the <a 
href="http://www.apache.org/licenses";>Apache License</a>,
-a &quot;free-to-use, business-friendly license&quot;.</p></li>
-<li><h3>Can Apache Struts be used in a commercial product?</h3>
+  a "free-to-use, business-friendly license".</p>
 
-<p>Yes. The only requirements you must meet are those listed in the <a 
href="http://www.apache.org/licenses";>Apache License</a>.</p></li>
-<li><h3>Do I have to credit Apache Struts on my own web site?</h3>
+<ul>
+  <li>
+    <h3 id="can-apache-struts-be-used-in-a-commercial-product">Can Apache 
Struts be used in a commercial product?</h3>
+  </li>
+</ul>
+
+<p>Yes. The only requirements you must meet are those listed in the <a 
href="http://www.apache.org/licenses";>Apache License</a>.</p>
+
+<ul>
+  <li>
+    <h3 id="do-i-have-to-credit-apache-struts-on-my-own-web-site">Do I have to 
credit Apache Struts on my own web site?</h3>
+  </li>
+</ul>
 
 <p>You need to credit Apache Struts if you <strong>redistribute your own 
framework</strong> based on our products
-for other people to use. (See the <a 
href="http://www.apache.org/LICENSE";>Apache License</a> for details.)
-But you do <strong>not</strong> need to credit Apache Struts just because your 
web application utilizes one of our products.
-It&#39;s the same situation as using the Apache HTTPD server or Tomcat. Not 
required if its just running your web site.
-Required if you&#39;ve used the source code to create your own server that you 
are redistributing to other people.</p></li>
-<li><h3>Are there ISPs that will host my Java web application?</h3>
+  for other people to use. (See the <a 
href="http://www.apache.org/LICENSE";>Apache License</a> for details.)
+  But you do <strong>not</strong> need to credit Apache Struts just because 
your web application utilizes one of our products.
+  It’s the same situation as using the Apache HTTPD server or Tomcat. Not 
required if its just running your web site.
+  Required if you’ve used the source code to create your own server that you 
are redistributing to other people.</p>
+
+<ul>
+  <li>
+    <h3 id="are-there-isps-that-will-host-my-java-web-application">Are there 
ISPs that will host my Java web application?</h3>
+  </li>
+</ul>
 
 <p>For a listing of some Java and Struts ISPs, visit the <a 
href="http://struts.sf.net/community/index.html";>Struts Community Resources</a>
-area on SourceForge.</p></li>
-<li><h3>Is there a particularly good IDE to use?</h3>
+  area on SourceForge.</p>
+
+<ul>
+  <li>
+    <h3 id="is-there-a-particularly-good-ide-to-use">Is there a particularly 
good IDE to use?</h3>
+  </li>
+</ul>
 
 <p>The frameworks should work well with any development environment that you 
would like to use, as well as with any
-programmers editor. The members of the Apache Struts development group each 
use their own tools such as
-<a href="http://www.gnu.org/software/emacs/emacs.html";>Emacs</a>, <a 
href="http://www.jetbrains.com/idea/";>IntelliJ IDEA</a>,
-<a href="http://www.eclipse.org/";>Eclipse</a>, and <a 
href="http://www.netbeans.org/";>NetBeans</a>.</p>
+  programmers editor. The members of the Apache Struts development group each 
use their own tools such as
+  <a href="http://www.gnu.org/software/emacs/emacs.html";>Emacs</a>, <a 
href="http://www.jetbrains.com/idea/";>IntelliJ IDEA</a>,
+  <a href="http://www.eclipse.org/";>Eclipse</a>, and <a 
href="http://www.netbeans.org/";>NetBeans</a>.</p>
 
-<p>For more, see the <a 
href="http://wiki.apache.org/struts/StrutsMyFavoriteIDE";>IDE discussion 
page</a> in the Struts wiki.</p></li>
-</ul>
+<p>For more, see the <a 
href="http://wiki.apache.org/struts/StrutsMyFavoriteIDE";>IDE discussion 
page</a> in the Struts wiki.</p>
 
-<h2>Product Support</h2>
+<h2 id="product-support">Product Support</h2>
 
 <ul>
-<li><h3>Where can I get help with Apache Struts?</h3>
+  <li>
+    <h3 id="where-can-i-get-help-with-apache-struts">Where can I get help with 
Apache Struts?</h3>
+  </li>
+</ul>
 
 <p>Each release of Struts comes with a User Guide or set of Tutorials to 
introduce people to the framework
-and its underlying technologies. Various components also have their own 
in-depth Developers Guide, to cover
-more advanced topics. Comprehensive Javadocs are provided for each release, 
along with the <strong>full source code</strong>.</p>
+  and its underlying technologies. Various components also have their own 
in-depth Developers Guide, to cover
+  more advanced topics. Comprehensive Javadocs are provided for each release, 
along with the <strong>full source code</strong>.</p>
 
 <p>The <a href="mail.html">Struts user mailing list</a> is also very active, 
and welcomes posts from new users. Before
-posting a new question, be sure to consult the <strong><a 
href="mail.html#Archives">MAILING LIST ARCHIVE</a></strong>
-and the very excellent <a 
href="http://www.catb.org/%7Eesr/faqs/smart-questions.html";>How To Ask 
Questions The Smart Way</a>
-by Eric Raymond. Please do be sure to <a 
href="http://expita.com/nomime.html";>turn off HTML</a> in your
-email client before posting.</p></li>
-<li><h3>Is commercial support available?</h3>
+  posting a new question, be sure to consult the <strong><a 
href="mail.html#Archives">MAILING LIST ARCHIVE</a></strong>
+  and the very excellent <a 
href="http://www.catb.org/~esr/faqs/smart-questions.html";>How To Ask Questions 
The Smart Way</a>
+  by Eric Raymond. Please do be sure to <a 
href="http://expita.com/nomime.html";>turn off HTML</a> in your
+  email client before posting.</p>
+
+<ul>
+  <li>
+    <h3 id="is-commercial-support-available">Is commercial support 
available?</h3>
+  </li>
+</ul>
 
 <p>The Apache Software Foundation does not provide commercial support for any 
of our software products,
-including Apache Struts. However, third parties may offer different degrees of 
support.</p></li>
-<li><h3>If a product doesn&#39;t do what I want, can I request that a feature 
be added?</h3>
+  including Apache Struts. However, third parties may offer different degrees 
of support.</p>
 
-<p>First, it&#39;s important to remember that Apache Struts is an 
all-volunteer project. We don&#39;t charge anyone
-anything to use Apache Struts products. Committers and other developers work 
on Apache Struts products because
-they need to use it with their own applications. If others can use it too, 
that&#39;s &quot;icing on the cake&quot;.
-If you <a href="helping.html">submit a patch</a> for a feature that a 
Committer finds useful, then that
-Committer may choose to volunteer his or her time to apply the patch.
-If you just submit an idea without a patch, it is much less likely to be added 
(since first someone else has to
-volunteer their time to write the patch).</p>
+<ul>
+  <li>
+    <h3 
id="if-a-product-doesnt-do-what-i-want-can-i-request-that-a-feature-be-added">If
 a product doesn’t do what I want, can I request that a feature be added?</h3>
+  </li>
+</ul>
+
+<p>First, it’s important to remember that Apache Struts is an all-volunteer 
project. We don’t charge anyone
+  anything to use Apache Struts products. Committers and other developers work 
on Apache Struts products because
+  they need to use it with their own applications. If others can use it too, 
that’s “icing on the cake”.
+  If you <a href="helping.html">submit a patch</a> for a feature that a 
Committer finds useful, then that
+  Committer may choose to volunteer his or her time to apply the patch.
+  If you just submit an idea without a patch, it is much less likely to be 
added (since first someone else has to
+  volunteer their time to write the patch).</p>
 
 <p>We are grateful for any patches, and we welcome new ideas, but the best way 
to see that something gets added
-to the framework is to do as much of the work as you can, rather than rely on 
the &quot;kindness of strangers&quot;.
-Worst case, you can apply the patch to your copy of the framework and still 
use the feature in your own application.
-(Which is what open source is <em>really</em> all about.)</p></li>
-<li><h3>Is there a press kit for Apache Struts?</h3>
+  to the framework is to do as much of the work as you can, rather than rely 
on the “kindness of strangers”.
+  Worst case, you can apply the patch to your copy of the framework and still 
use the feature in your own application.
+  (Which is what open source is <em>really</em> all about.)</p>
+
+<ul>
+  <li>
+    <h3 id="is-there-a-press-kit-for-apache-struts">Is there a press kit for 
Apache Struts?</h3>
+  </li>
+</ul>
 
 <p>Except for our <a href="announce.html">announcements page</a>, there is not 
a formal press or media kit for Apache Struts.
-Queries from the press (and ONLY queries from the press, NOT support questions 
or anything else!)
-should go to our media relations address: <a 
href="mailto:pr...@apache.org";>pr...@apache.org</a>.</p></li>
-<li><h3>Where can I report a potential security vulnerability?</h3>
+  Queries from the press (and ONLY queries from the press, NOT support 
questions or anything else!)
+  should go to our media relations address: <a 
href="&#109;&#097;&#105;&#108;&#116;&#111;:&#112;&#114;&#101;&#115;&#115;&#064;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">&#112;&#114;&#101;&#115;&#115;&#064;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;</a>.</p>
 
-<p>If you believe you&#39;ve found a security vulnerability in Apache Struts, 
please contact our security address - any
-emails not relating to security vulnerabilities will be ignored without a 
reply (all security related information
-will be kept confidential unless otherwise indicated): <a 
href="mailto:secur...@struts.apache.org";>secur...@struts.apache.org</a>.</p></li>
+<ul>
+  <li>
+    <h3 id="where-can-i-report-a-potential-security-vulnerability">Where can I 
report a potential security vulnerability?</h3>
+  </li>
 </ul>
 
-<h2>Mailing Lists</h2>
+<p>If you believe you’ve found a security vulnerability in Apache Struts, 
please contact our security address - any
+  emails not relating to security vulnerabilities will be ignored without a 
reply (all security related information
+  will be kept confidential unless otherwise indicated): <a 
href="&#109;&#097;&#105;&#108;&#116;&#111;:&#115;&#101;&#099;&#117;&#114;&#105;&#116;&#121;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">&#115;&#101;&#099;&#117;&#114;&#105;&#116;&#121;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;</a>.</p>
+
+<h2 id="mailing-lists">Mailing Lists</h2>
 
 <ul>
-<li><h3>Is there a digest for the User list?</h3>
+  <li>
+    <h3 id="is-there-a-digest-for-the-user-list">Is there a digest for the 
User list?</h3>
+  </li>
+</ul>
 
-<p>Yes. Send a blank message to <a 
href="mailto:user-digest-subscr...@struts.apache.org";>user-digest-subscr...@struts.apache.org</a>.</p>
+<p>Yes. Send a blank message to <a 
href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#045;&#100;&#105;&#103;&#101;&#115;&#116;&#045;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">&#117;&#115;&#101;&#114;&#045;&#100;&#105;&#103;&#101;&#115;&#116;&#045;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;</a>.</p>
 
 <p>If you are subscribed to the digest, you can also post to the list. Just be 
sure to send your post to
-the <a href="mailto:u...@struts.apache.org";>user list</a> rather than trying 
to reply to the digest.</p></li>
-<li><h3>Is there an Apache Struts newsgroup?</h3>
+  the <a 
href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">user
 list</a> rather than trying to reply to the digest.</p>
+
+<ul>
+  <li>
+    <h3 id="is-there-an-apache-struts-newsgroup">Is there an Apache Struts 
newsgroup?</h3>
+  </li>
+</ul>
 
 <p>Not a usenet group, but the Apache Struts User list can be accessed with 
your favorite newsgroup reader from
-the <a href="http://news.gmane.org/";>GMane News Site</a>. Subscribe to groups 
<code>gmane.comp.jakarta.struts.user</code>
-for the user list.</p></li>
-<li><h3>Why didn&#39;t my posting show up on the user list?</h3>
-
-<p>You must be subscribed to the <a 
href="mailto:user-subscr...@struts.apache.org";>user list</a> or
-<a href="mailto:user-digest-subscr...@struts.apache.org";>user digest</a> 
before posting (or use the
-<a href="http://news.gmane.org";>GMane Newsgroups</a> instead).</p></li>
-<li><h3>Are there separate user lists for Struts 1 and Struts 2?</h3>
+  the <a href="http://news.gmane.org/";>GMane News Site</a>. Subscribe to 
groups <code>gmane.comp.jakarta.struts.user</code>
+  for the user list.</p>
+
+<ul>
+  <li>
+    <h3 id="why-didnt-my-posting-show-up-on-the-user-list">Why didn’t my 
posting show up on the user list?</h3>
+  </li>
+</ul>
 
-<p>No. Each major version has it&#39;s own JIRA project, but we share the 
mailing lists.</p>
+<p>You must be subscribed to the <a 
href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#045;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">user
 list</a> or
+  <a 
href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#045;&#100;&#105;&#103;&#101;&#115;&#116;&#045;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">user
 digest</a> before posting (or use the
+  <a href="http://news.gmane.org";>GMane Newsgroups</a> instead).</p>
+
+<ul>
+  <li>
+    <h3 id="are-there-separate-user-lists-for-struts-1-and-struts-2">Are there 
separate user lists for Struts 1 and Struts 2?</h3>
+  </li>
+</ul>
+
+<p>No. Each major version has it’s own JIRA project, but we share the 
mailing lists.</p>
 
 <p>To get the best response to an inquiry, please specify which version of 
Struts is being used,
-including the milestone (&quot;Struts 1.2.9&quot;, for example). You can also 
include the label <strong>[s1]</strong>
-or <strong>[s2]</strong> in the subject line of your post.</p></li>
-<li><h3>How do I unsubscribe from the mailing list?</h3>
+  including the milestone (“Struts 1.2.9”, for example). You can also 
include the label <strong>[s1]</strong>
+  or <strong>[s2]</strong> in the subject line of your post.</p>
+
+<ul>
+  <li>
+    <h3 id="how-do-i-unsubscribe-from-the-mailing-list">How do I unsubscribe 
from the mailing list?</h3>
+  </li>
+</ul>
 
 <p><strong>From the email account used to subscribe to the list</strong>, send 
a blank message to
-<a 
href="mailto:user-unsubscr...@struts.apache.org";>user-unsubscr...@struts.apache.org</a>.</p>
+  <a 
href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#045;&#117;&#110;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">&#117;&#115;&#101;&#114;&#045;&#117;&#110;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;</a>.</p>
 
 <p>If you are receiving the digest, you must send a blank email to
-<a 
href="mailto:user-digest-unsubscr...@struts.apache.org";>user-unsubscr...@struts.apache.org</a>
 instead.</p></li>
-</ul>
+  <a 
href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#045;&#100;&#105;&#103;&#101;&#115;&#116;&#045;&#117;&#110;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#115;&#116;&#114;&#117;&#116;&#115;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">user-unsubscr...@struts.apache.org</a>
 instead.</p>
 
   </section>
 </article>
@@ -307,5 +390,19 @@ or <strong>[s2]</strong> in the subject
 }(document, 'script', 'facebook-jssdk'));</script>
 
 
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, icon, id;
+    $el = $(el);
+    id = $el.attr('id');
+    icon = '<i class="fa fa-link"></i>';
+    if (id) {
+      return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + 
id).html(icon));
+    }
+  });
+});
+</script>
+
 </body>
 </html>

Modified: websites/production/struts/content/mail.html
==============================================================================
--- websites/production/struts/content/mail.html (original)
+++ websites/production/struts/content/mail.html Wed Dec 31 10:10:27 2014
@@ -10,9 +10,11 @@
   <title>Mailing Lists</title>
 
   <link 
href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic"
 rel="stylesheet" type="text/css">
-  <link rel="stylesheet" href="css/main.css">
+  <link 
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" 
rel="stylesheet">
+  <link href="css/main.css" rel="stylesheet">
+  <link href="css/custom.css" rel="stylesheet">
 
-  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+  <script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
   <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="js/community.js"></script>
 </head>
@@ -363,5 +365,19 @@
 }(document, 'script', 'facebook-jssdk'));</script>
 
 
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, icon, id;
+    $el = $(el);
+    id = $el.attr('id');
+    icon = '<i class="fa fa-link"></i>';
+    if (id) {
+      return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + 
id).html(icon));
+    }
+  });
+});
+</script>
+
 </body>
 </html>

Modified: websites/production/struts/content/primer.html
==============================================================================
--- websites/production/struts/content/primer.html (original)
+++ websites/production/struts/content/primer.html Wed Dec 31 10:10:27 2014
@@ -10,9 +10,11 @@
   <title>Key Technologies Primer</title>
 
   <link 
href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic"
 rel="stylesheet" type="text/css">
-  <link rel="stylesheet" href="css/main.css">
+  <link 
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" 
rel="stylesheet">
+  <link href="css/main.css" rel="stylesheet">
+  <link href="css/custom.css" rel="stylesheet">
 
-  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+  <script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
   <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="js/community.js"></script>
 </head>
@@ -118,49 +120,49 @@
 
 <article class="container">
   <section class="col-md-12">
-    <h1>Key Technologies Primer</h1>
+    <h1 id="key-technologies-primer">Key Technologies Primer</h1>
 
 <blockquote>
-<p><em>&quot;The time has come,&quot; the Walrus said, &quot;To talk of many 
things:
- Of shoes -- and ships -- and sealing-wax -- Of cabbages -- and kings --
- And why the sea is boiling hot -- And whether pigs have wings.&quot;</em></p>
+  <p><em>“The time has come,” the Walrus said, “To talk of many things:
+ Of shoes – and ships – and sealing-wax – Of cabbages – and kings –
+ And why the sea is boiling hot – And whether pigs have wings.”</em></p>
 </blockquote>
 
-<h2>Intention</h2>
+<h2 id="intention">Intention</h2>
 
 <p>If you would like to get started with Apache Struts you most likely want
 to know what technologies you need to learn. This document shall give you
 a brief overview what you need to successfully run a Struts project.</p>
 
-<p>If you still can&#39;t decide if Struts is for you or if you have any 
questions,
+<p>If you still can’t decide if Struts is for you or if you have any 
questions,
 feel free to contact us via the <a href="mail.html">Struts user 
mailinglist</a>.</p>
 
-<h2>Key Technologies</h2>
+<h2 id="key-technologies">Key Technologies</h2>
 
-<h3>What you need to know</h3>
+<h3 id="what-you-need-to-know">What you need to know</h3>
 
 <p>The framework documentation is written for active web developers and assumes
 a working knowledge about how Java web applications are built.
 Before getting started, you should understand the basics of several key 
technologies:</p>
 
 <ul>
-<li><a href="#http">HTTP and HTML</a></li>
-<li><a href="#cycle">The HTTP Request/Response Cycle</a></li>
-<li><a href="#java">The Java Language and Application Frameworks</a></li>
-<li><a href="#javascript">JavaScript, AJAX, and SOAP</a></li>
-<li><a href="#resources">Properties Files and ResourceBundles</a></li>
-<li><a href="#containers">Servlets, Filters and Web Containers</a></li>
-<li><a href="#jsp">JavaServer Pages and JSP Tag Libraries</a></li>
-<li><a href="#xml">Extensible Markup Language (XML)</a></li>
-<li><a href="#jaas">JAAS</a></li>
-<li><a href="#mvc">Model View Controller</a></li>
+  <li><a href="#http">HTTP and HTML</a></li>
+  <li><a href="#cycle">The HTTP Request/Response Cycle</a></li>
+  <li><a href="#java">The Java Language and Application Frameworks</a></li>
+  <li><a href="#javascript">JavaScript, AJAX, and SOAP</a></li>
+  <li><a href="#resources">Properties Files and ResourceBundles</a></li>
+  <li><a href="#containers">Servlets, Filters and Web Containers</a></li>
+  <li><a href="#jsp">JavaServer Pages and JSP Tag Libraries</a></li>
+  <li><a href="#xml">Extensible Markup Language (XML)</a></li>
+  <li><a href="#jaas">JAAS</a></li>
+  <li><a href="#mvc">Model View Controller</a></li>
 </ul>
 
 <p>This primer briefly defines each of these technologies but does not
 describe them in detail. For your convenience, links to further information
 are often provided where it makes sense.</p>
 
-<h3>General starting points</h3>
+<h3 id="general-starting-points">General starting points</h3>
 
 <p>If you are not familiar with the Java language generally,then the best 
starting point is the
 <a href="http://docs.oracle.com/javase/tutorial/index.html";>Java 
Tutorial</a>.</p>
@@ -168,12 +170,12 @@ are often provided where it makes sense.
 <p>If you are familiar with Java, but not the mentioned technologies,
 the best overall starting point is the <a 
href="http://docs.oracle.com/javaee/7/tutorial/doc/";>Java EE Tutorial</a>.</p>
 
-<p>If you&#39;ve created web applications for other platforms, you
+<p>If you’ve created web applications for other platforms, you
 may be able to follow along and visit the other references as needed. The core
 technologies used by Struts are also used by most other Java web development 
products, so
-the background information will be useful in any Java project.</p></p>
+the background information will be useful in any Java project.&lt;/p&gt;</p>
 
-<h3><a name="http"></a>HTTP, HTML and User Agents</h3>
+<h3 id="a-namehttpahttp-html-and-user-agents"><a name="http"></a>HTTP, HTML 
and User Agents</h3>
 
 <p>The World Wide Web was built over the Hypertext Transfer Protocol
 <a href="http://www.ietf.org/rfc/rfc2616.txt?number=2616";>(HTTP)</a>
@@ -185,7 +187,7 @@ transport more the HTML, HTML from the b
 <p>If you would like to learn HTML, we recommend
 <a href="http://www.w3.org/MarkUp/Guide/";>Getting started with HTML</a> by 
Dave Raggett.</p>
 
-<h3><a name="cycle"></a>The HTTP Request/Response cycle</h3>
+<h3 id="a-namecycleathe-http-requestresponse-cycle"><a name="cycle"></a>The 
HTTP Request/Response cycle</h3>
 
 <p>A very important part of HTTP for the web developer is the request/response 
cycle. To use HTTP
 you have to make a request. A HTTP server, like a web server, is then obliged 
to respond. When you
@@ -197,7 +199,7 @@ what is happening behind the scenes.</p>
 There is a lot of help available in the internet, like
 <a 
href="http://docs.webplatform.org/wiki/tutorials/How_does_the_Internet_work";>How
 does the Internet work?</a></p>
 
-<h3><a name="java"></a>The Java Language and Application Frameworks</h3>
+<h3 id="a-namejavaathe-java-language-and-application-frameworks"><a 
name="java"></a>The Java Language and Application Frameworks</h3>
 
 <p>Struts is written in the
 <a href="http://www.oracle.com/us/technologies/java/overview/index.html";>Java 
programming language</a>.
@@ -206,7 +208,7 @@ object-orientated techniques. A good und
 object-orientated programming (OOP) and threading, will help
 you get the most out of Struts.</p>
 
-<h4><a name="reflection"></a>Reflection and Introspection</h4>
+<h4 id="a-namereflectionareflection-and-introspection"><a 
name="reflection"></a>Reflection and Introspection</h4>
 
 <p>Reflection is the process of determining which member fields and methods 
are available on an object.
 Introspection is a specialized form of reflection used by the JavaBean API.
@@ -214,13 +216,13 @@ Using Introspection, we can determine wh
 The getters and the setters, for example.</p>
 
 <p>Struts uses Introspection to convert HTTP parameters into JavaBean 
properties and to populate HTML
-fields from JavaBean properties. This technique makes it easy to 
&quot;roundtrip&quot; properties
+fields from JavaBean properties. This technique makes it easy to 
“roundtrip” properties
 between HTML forms and JavaBeans.</p>
 
 <p>While it is not necessary to have a deep understanding of these concepts 
when you start with Apache
 Struts, it will help you when your application grows and becomes more 
complex.</p>
 
-<h4><a name="resources"></a>Properties Files and ResourceBundles</h4>
+<h4 id="a-nameresourcesaproperties-files-and-resourcebundles"><a 
name="resources"></a>Properties Files and ResourceBundles</h4>
 
 <p>Java applications, including web applications, are often
 configured using <a 
href="http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html";>Properties</a>
@@ -238,14 +240,14 @@ Support for localizing an application wa
 <p>Again the Java Tutorials provide
 <a 
href="http://docs.oracle.com/javase/tutorial/i18n/resbundle/concept.html";>more 
information</a>.</p>
 
-<h4><a name="threads"></a>Threads</h4>
+<h4 id="a-namethreadsathreads"><a name="threads"></a>Threads</h4>
 
 <p>With Struts 1 you were required to know a lot about how to write code which
 can run in a multi-threaded environment. With Struts 2 this is no longer 
necessary.
 In an Struts 2 environment each action caused by a HTTP request
 is a plain old Java object which is instanced for each request.</p>
 
-<h3><a name="javascript"></a>JavaScript, AJAX, and SOAP</h3>
+<h3 id="a-namejavascriptajavascript-ajax-and-soap"><a 
name="javascript"></a>JavaScript, AJAX, and SOAP</h3>
 
 <p>WIth HTTP and HTML you can already provide static web pages. Today this is 
much
 often not longer enough and your application users might expect a interactive 
user interface.
@@ -257,7 +259,7 @@ to create web applications that are as i
 It is possible, to load a view parts of the website or just the data
 from the (Struts) application instead of regenerating the whole view.</p>
 
-<p>Apache Struts provides plugins to easily work with AJAX and even 
JavaScript. Where Struts can&#39;t provide
+<p>Apache Struts provides plugins to easily work with AJAX and even 
JavaScript. Where Struts can’t provide
 the necessary functionality, third parties provide extensions for the required 
behavior.</p>
 
 <p>Another technology that can enhance the HTTP request/response cycle is <a 
href="http://en.wikipedia.org/wiki/SOAP";>SOAP</a>.
@@ -267,13 +269,13 @@ requests directly to a remote server, wh
 the business logic and the page markup. Depending on your applications need, 
it might be not necessary
 for you to learn about SOAP.</p>
 
-<h3><a name="containers"></a>Servlets, Filters, and Web Containers</h3>
+<h3 id="a-namecontainersaservlets-filters-and-web-containers"><a 
name="containers"></a>Servlets, Filters, and Web Containers</h3>
 
 <p>Since Java is an object-orientated language, the
 <a href="http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html";>Java 
Servlet</a>
 platform strives to cast HTTP into an object-orientated form.
 This strategy makes it easier for Java developers to concentrate on what they 
need their
-application to do -- rather than the mechanics of HTTP.</p>
+application to do – rather than the mechanics of HTTP.</p>
 
 <p>A Java-aware HTTP server can pass a request to a servlet container.
 The container can fulfill the request or it can pass the request back to the 
HTTP server.
@@ -283,14 +285,14 @@ If there is a servlet registered for the
 <p>When a request comes in, the container checks to see if there is a servlet 
registered for that request.
 If there is a match, the request is given to the servlet. If not, the request 
is returned to the HTTP server.</p>
 
-<p>It&#39;s the container&#39;s job to manages the servlet lifecycle. The 
container creates the servlets, invokes the servlets,
+<p>It’s the container’s job to manages the servlet lifecycle. The 
container creates the servlets, invokes the servlets,
 and ultimately disposes the servlets.</p>
 
 <p>The old Struts 1 version relied heavily on servlets and good knowledge 
about it usually helped a lot
 with developing web applications.</p>
 
-<p>With Struts 2, you&#39;ll need only a basic understanding of Servlets. 
Struts actually uses a so called
-ServletFilter to &quot;make things work&quot;. In general you are not required 
to write Servlets when
+<p>With Struts 2, you’ll need only a basic understanding of Servlets. Struts 
actually uses a so called
+ServletFilter to "make things work". In general you are not required to write 
Servlets when
 using Struts 2. It still helps to know what Servlets, Filters and Containers 
are.</p>
 
 <p>Filters let you compose a set of components that will process a request or
@@ -298,7 +300,7 @@ response. Filters are aggregated into a
 has a chance to process the request and response before and after
 it is processed by subsequent filters (and the servlet that is ultimately 
called).</p>
 
-<h3><a name="session"></a>Sessions</h3>
+<h3 id="a-namesessionasessions"><a name="session"></a>Sessions</h3>
 
 <p>One of the key characteristics of HTTP is that it is
 <em>stateless</em>. In other words, there is nothing built in to
@@ -315,7 +317,7 @@ interface. The servlet container will us
 same user will include the <em>session id</em>
 for this session, so that state information saved in the session can be 
associated with
 multiple requests. This state information is stored in
-<em>session attributes</em> (in JSP, they are known as &quot;session scope 
beans&quot;).</p>
+<em>session attributes</em> (in JSP, they are known as “session scope 
beans”).</p>
 
 <p>To avoid occupying resources indefinitely when a user fails to
 complete an interaction, sessions have a configurable <em>timeout 
interval</em>.
@@ -329,7 +331,7 @@ bypass this.</p>
 
 <p>Struts 2 provides easy ways to create and access a session.</p>
 
-<h3><a name="webapp"></a>Web Applications</h3>
+<h3 id="a-namewebappaweb-applications"><a name="webapp"></a>Web 
Applications</h3>
 
 <p>Just as a HTTP server can be used to host several distinct
 websites, a servlet container can be used to host more than one web
@@ -347,7 +349,7 @@ application and deploy it to your server
 build tools like <a href="http://maven.apache.org";>Maven</a> and addition 
reading
 in the documentation of your server vendor.</p>
 
-<h3><a name="security"></a>Security</h3>
+<h3 id="a-namesecurityasecurity"><a name="security"></a>Security</h3>
 
 <p>One detail that can be configured in the Web application deployment 
descriptor is container-managed security.
 Declarative security can be used to protect requests for URIs that match given 
patterns.
@@ -361,7 +363,7 @@ Other projects, like <a href="http://shi
 <a href="http://www.springframework.org/spring-security/";>Spring Security</a> 
might also help
 you to secure your web application.</p>
 
-<h3><a name="jsp"></a>JavaServer Pages, JSP Tag Libraries, and JavaServer 
Faces</h3>
+<h3 id="a-namejspajavaserver-pages-jsp-tag-libraries-and-javaserver-faces"><a 
name="jsp"></a>JavaServer Pages, JSP Tag Libraries, and JavaServer Faces</h3>
 
 <p>If you write a classic web app, you might need a view component.
 One of the first of its kind was <a 
href="http://www.oracle.com/technetwork/java/javaee/jsp/index.html";>JSP</a>.</p>
@@ -388,14 +390,14 @@ as a front end layer and even completely
 presentation technologies available to Struts:</p>
 
 <ul>
-<li><a href="http://www.freemarker.org/";>Freemarker</a></li>
-<li><a href="http://www.lowagie.com/iText/";>iText (PDF)</a></li>
-<li><a href="http://jaspersoft.com/";>JasperReports</a></li>
-<li><a href="http://velocity.apache.org/";>Velocity</a></li>
-<li><a href="http://www.w3.org/TR/xslt";>XSLT</a></li>
+  <li><a href="http://www.freemarker.org/";>Freemarker</a></li>
+  <li><a href="http://www.lowagie.com/iText/";>iText (PDF)</a></li>
+  <li><a href="http://jaspersoft.com/";>JasperReports</a></li>
+  <li><a href="http://velocity.apache.org/";>Velocity</a></li>
+  <li><a href="http://www.w3.org/TR/xslt";>XSLT</a></li>
 </ul>
 
-<h3><a name="xml"></a>Extensible Markup Language (XML)</h3>
+<h3 id="a-namexmlaextensible-markup-language-xml"><a name="xml"></a>Extensible 
Markup Language (XML)</h3>
 
 <p>The features provided by the framework rely on a number of
 objects that are sometimes deployed using a configuration file written in
@@ -408,7 +410,7 @@ it is no longer crucial to write long XM
 application. If you would like to read more about it, please visit the page of 
the
 <a 
href="http://struts.apache.org/release/2.1.x/docs/convention-plugin.html";>Convention
 plugin</a>.</p>
 
-<h3><a name="mvc"></a>Model View Controller (MVC)</h3>
+<h3 id="a-namemvcamodel-view-controller-mvc"><a name="mvc"></a>Model View 
Controller (MVC)</h3>
 
 <p>Web applications based on JavaServer Pages sometimes
 commingle database code, page design code, and control flow
@@ -421,10 +423,10 @@ Model represents the business or databas
 represents the page design code, and the Controller
 represents the navigational code.</p>
 
-<p>The term &quot;MVC&quot; originated with the SmallTalk
+<p>The term “MVC” originated with the SmallTalk
 Model-View-Controller framework.
 In Smalltalk MVC, the View updates itself from the Model, via
-the &quot;Observer&quot; pattern. The original MVC pattern is like a
+the “Observer” pattern. The original MVC pattern is like a
 closed loop: The View talks to the Controller, which talks to
 the Model, which talks to the View.</p>
 
@@ -438,7 +440,7 @@ by a central Controller. The Controller
 in our case, HTTP requests - to an appropriate handler. The
 handlers are tied to a Model, and each handler acts as an
 adapter between the request and the Model. The Model
-represents, or encapsulates, an application&#39;s business logic or
+represents, or encapsulates, an application’s business logic or
 state. Control is usually then forwarded back through the
 Controller to the appropriate View. The forwarding can be
 determined by consulting a set of mappings, usually loaded from a
@@ -458,24 +460,24 @@ technologies to build the business, data
 <p>For more about MVC, see</p>
 
 <ul>
-<li><a 
href="http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html";>Smalltalk MVC 
framework</a>.</li>
-<li><a href="http://en.wikipedia.org/wiki/Model_view_controller";>Wikipedia - 
MVC</a></li>
+  <li><a 
href="http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html";>Smalltalk MVC 
framework</a>.</li>
+  <li><a href="http://en.wikipedia.org/wiki/Model_view_controller";>Wikipedia - 
MVC</a></li>
 </ul>
 
-<h2><a name="logic_frameworks"></a>Business Logic Frameworks</h2>
+<h2 id="a-namelogicframeworksabusiness-logic-frameworks"><a 
name="logic_frameworks"></a>Business Logic Frameworks</h2>
 
 <p>Most teams still roll their own business logic layer using
 plain old JavaBeans (POJOs). Though, business layer frameworks are beginning 
to emerge,
 and now include:</p>
 
 <ul>
-<li><a href="http://springframework.org/";>Spring</a></li>
-<li><a href="http://code.google.com/p/google-guice/%E2%80%8E";>Google 
Guice</a></li>
-<li><a href="http://commons.apache.org/chain/";>Commons Chain of 
Responsiblity</a></li>
-<li>or you can rely on features of the bundled Struts XWork</li>
+  <li><a href="http://springframework.org/";>Spring</a></li>
+  <li><a href="http://code.google.com/p/google-guice/‎";>Google Guice</a></li>
+  <li><a href="http://commons.apache.org/chain/";>Commons Chain of 
Responsiblity</a></li>
+  <li>or you can rely on features of the bundled Struts XWork</li>
 </ul>
 
-<h3><a name="data_frameworks"></a>Data Access Frameworks</h3>
+<h3 id="a-namedataframeworksadata-access-frameworks"><a 
name="data_frameworks"></a>Data Access Frameworks</h3>
 
 <p>Most often, the business layer is seen to be distinct from
 the data access layer. Some teams roll their own data access objects (DAOs),
@@ -483,10 +485,10 @@ but more and more teams are turning to o
 data access frameworks. Some popular data access frameworks include:</p>
 
 <ul>
-<li><a href="http://cayenne.apache.org/";>Apache Cayenne</a></li>
-<li><a 
href="http://docs.oracle.com/javaee/5/tutorial/doc/bnblr.html";>Enterprise Java 
Beans</a></li>
-<li><a href="http://www.hibernate.org/";>Hibernate</a></li>
-<li><a href="http://code.google.com/p/mybatis";>myBATIS</a></li>
+  <li><a href="http://cayenne.apache.org/";>Apache Cayenne</a></li>
+  <li><a 
href="http://docs.oracle.com/javaee/5/tutorial/doc/bnblr.html";>Enterprise Java 
Beans</a></li>
+  <li><a href="http://www.hibernate.org/";>Hibernate</a></li>
+  <li><a href="http://code.google.com/p/mybatis";>myBATIS</a></li>
 </ul>
 
   </section>
@@ -528,5 +530,19 @@ data access frameworks. Some popular dat
 }(document, 'script', 'facebook-jssdk'));</script>
 
 
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, icon, id;
+    $el = $(el);
+    id = $el.attr('id');
+    icon = '<i class="fa fa-link"></i>';
+    if (id) {
+      return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + 
id).html(icon));
+    }
+  });
+});
+</script>
+
 </body>
 </html>

Modified: websites/production/struts/content/releases.html
==============================================================================
--- websites/production/struts/content/releases.html (original)
+++ websites/production/struts/content/releases.html Wed Dec 31 10:10:27 2014
@@ -10,9 +10,11 @@
   <title>Release Guidelines</title>
 
   <link 
href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic"
 rel="stylesheet" type="text/css">
-  <link rel="stylesheet" href="css/main.css">
+  <link 
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" 
rel="stylesheet">
+  <link href="css/main.css" rel="stylesheet">
+  <link href="css/custom.css" rel="stylesheet">
 
-  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+  <script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
   <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="js/community.js"></script>
 </head>
@@ -118,110 +120,110 @@
 
 <article class="container">
   <section class="col-md-12">
-    <h1>Release Guidelines</h1>
+    <h1 id="release-guidelines">Release Guidelines</h1>
 
 <p>This document describes the Apache Struts release process and our <a 
href="#Coding">coding conventions</a>,
 which are applicable to all subprojects. Both stable and development releases 
are
 <a href="downloads.html">available for download.</a></p>
 
-<h1>Release Process</h1>
+<h1 id="release-process">Release Process</h1>
 
 <p>A <a href="http://commons.apache.org/releases/versioning.html";>point 
release</a> should be made before and after
-any product change that is not a &quot;fully-compatible change&quot; (see 
link). This includes moving a dependency from
+any product change that is not a “fully-compatible change” (see link). 
This includes moving a dependency from
 an internal package to an external product, including products distributed 
through the Apache Commons.
 We should place any fully-compatible changes in the hands of the community 
before starting on a change that
-is only &quot;interface&quot; or &quot;external-interface&quot; compatible.</p>
+is only “interface” or “external-interface” compatible.</p>
 
 <p>Additional remarks:</p>
 
 <ul>
-<li>Every committer is encouraged to participate in the release process, 
either as the release manager or a
+  <li>Every committer is encouraged to participate in the release process, 
either as the release manager or a
 helper. Committers may also share the release manager role.</li>
-<li>The release process can seem daunting when you review it for the first 
time. But, essentially, it breaks
+  <li>The release process can seem daunting when you review it for the first 
time. But, essentially, it breaks
 down into four phases of just a few steps each:
-
-<ul>
-<li><strong>Rolling</strong> - Issues, dependencies, release notes, JAR 
manifest, licenses, copyrights,
+    <ul>
+      <li><strong>Rolling</strong> - Issues, dependencies, release notes, JAR 
manifest, licenses, copyrights,
 and build (using the release target).</li>
-<li><strong>Testing</strong> - JUnit, Cactus, web apps (for all 
&quot;supported&quot; containers).</li>
-<li><strong>Voting</strong> - Upload test build to internal directory, post 
majority vote on DEV list as to release
+      <li><strong>Testing</strong> - JUnit, Cactus, web apps (for all 
“supported” containers).</li>
+      <li><strong>Voting</strong> - Upload test build to internal directory, 
post majority vote on DEV list as to release
 grade: Alpha, Beta, General Availability.</li>
-<li><strong>Distributing</strong> - Checksum, sign, mirror, update download 
page, announce.</li>
-</ul></li>
-<li>Committers are <strong>required</strong> to post a release plan before 
tagging the repository and should wait
+      <li><strong>Distributing</strong> - Checksum, sign, mirror, update 
download page, announce.</li>
+    </ul>
+  </li>
+  <li>Committers are <strong>required</strong> to post a release plan before 
tagging the repository and should wait
 the traditional 72 hours before proceeding.</li>
-<li>A checklist format can be used for the <a 
href="http://wiki.apache.org/struts/StrutsReleasePlans";>release plan</a>,
+  <li>A checklist format can be used for the <a 
href="http://wiki.apache.org/struts/StrutsReleasePlans";>release plan</a>,
 to help step through the process. The plan may be maintained in the repository 
or on the
 <a href="http://wiki.apache.org/struts/";>Struts wiki</a>.</li>
-<li>Our dependencies on external JARs (including Commons JARs) should be in 
line with our own release status.
+  <li>Our dependencies on external JARs (including Commons JARs) should be in 
line with our own release status.
 Our nightly build can be dependant on another nightly build. Our beta can be 
dependant on another beta (or
-&quot;release candidate&quot;), but should avoid a dependance on a nightly 
build. Our General Availability release
+“release candidate”), but should avoid a dependance on a nightly build. 
Our General Availability release
 may only have dependencies on other GA, final, or stable releases.</li>
-<li>Use your own discretion as to detail needed by the Release Notes. A 
high-level description of the changes
+  <li>Use your own discretion as to detail needed by the Release Notes. A 
high-level description of the changes
 is more important than providing uninterpreted detail. At a minimum, new 
features and deprecations should be
 summarized, since these are commonly asked questions. Ideally, the release 
notes should be maintained,
 continuously for the nightly build so that we they do not need to be assembled 
at the last minute.</li>
-<li>Try building the distribution under prior version of J2SE, if possible, to 
ensure that we are still
+  <li>Try building the distribution under prior version of J2SE, if possible, 
to ensure that we are still
 backwardly-compatible. But, our distributions should be built using the 
<strong>latest production release of J2SE</strong>,
 to take advantage of all available compiler enhancements.</li>
-<li>If you have multiple J2SE versions configured, run the JUnit and Cactus 
tests using the same configuration
+  <li>If you have multiple J2SE versions configured, run the JUnit and Cactus 
tests using the same configuration
 that will be used to build the distribution.</li>
-<li>There is a &quot;release&quot; target in the buildfile that will zip and 
tar the distribution. Before uploading the
-distribution, extract the sample web applications and deploy the WARs under 
each of the &quot;supported&quot;
+  <li>There is a “release” target in the buildfile that will zip and tar 
the distribution. Before uploading the
+distribution, extract the sample web applications and deploy the WARs under 
each of the “supported”
 containers (if you can). Play test each application under each container to be 
sure they operate
 nominally.</li>
-<li>The test build can be posted to the internal distribution directory 
(svn.apache.org/struts/) and
+  <li>The test build can be posted to the internal distribution directory 
(svn.apache.org/struts/) and
 announced to the Struts DEV and PMC lists (only!). Do not announce a test 
build on any other Apache lists or
 link to it from an Apache website.</li>
-<li>If the test build is voted to Alpha, Beta, or GA status, the release can 
announced to the User list and
+  <li>If the test build is voted to Alpha, Beta, or GA status, the release can 
announced to the User list and
 linked from the website.</li>
-<li>Any formal release may be submitted for mirroring. All GA releases 
<strong>must</strong> be mirrored.</li>
-<li>After announcing a release, remember to update the Downloads and 
Announcements pages. If the release is
+  <li>Any formal release may be submitted for mirroring. All GA releases 
<strong>must</strong> be mirrored.</li>
+  <li>After announcing a release, remember to update the Downloads and 
Announcements pages. If the release is
 to be mirrored, wait at least 24 hours after submittal before making public 
announcements (as stated in the
 <a href="http://apache.org/dev/mirrors.html";>Apache Mirroring 
guidelines</a>.</li>
-<li>If a serious flaw if found in a test build or release, it may be withdrawn 
by a majority vote of the PMC and
+  <li>If a serious flaw if found in a test build or release, it may be 
withdrawn by a majority vote of the PMC and
 removed from ASF distribution channels.</li>
 </ul>
 
-<h1>Coding Conventions and Guidelines</h1>
+<h1 id="coding-conventions-and-guidelines">Coding Conventions and 
Guidelines</h1>
 
 <p>Source code and documentation contributed to the Struts repositories should 
observe the:
-- The <a 
href="http://www.oracle.com/technetwork/java/codeconvtoc-136057.html";>&quot;Code
 Conventions for the Java Programming Language&quot;</a>,
+- The <a 
href="http://www.oracle.com/technetwork/java/codeconvtoc-136057.html";>“Code 
Conventions for the Java Programming Language”</a>,
   as published by Oracle.</p>
 
-<h1>Clarifications</h1>
-
+<h1 id="clarifications">Clarifications</h1>
 <ul>
-<li>First, &quot;Observe the style of the original&quot;. Resist the 
temptation to make stylistic changes for their own
+  <li>First, “Observe the style of the original”. Resist the temptation to 
make stylistic changes for their own
 sake. But, if you must reformat code, commit style changes separately from 
code changes. Either change
 the style, commit, and then change the code, or vice-versa.</li>
-<li>Set editors to replace tabs with spaces and do not trim trailing spaces. 
Tabs confound the version
+  <li>Set editors to replace tabs with spaces and do not trim trailing spaces. 
Tabs confound the version
 control alerts. Trimming trailing spaces creates unnecessary changes.</li>
-<li>Specify imported classes (do not use <em>.*</em>).</li>
-<li>Write all if/else statements as full blocks with each clause within 
braces, unless the entire statement fits
+  <li>Specify imported classes (do not use <em>.*</em>).</li>
+  <li>Write all if/else statements as full blocks with each clause within 
braces, unless the entire statement fits
 on the same line.</li>
-<li>Use <code>FIXME:</code> and <code>TODO:</code> tokens to mark follow up 
notes in code. You may also
+  <li>Use <code>FIXME:</code> and <code>TODO:</code> tokens to mark follow up 
notes in code. You may also
 include your Apache username and the date.</li>
-<li>Omit <code>@author</code> tags.</li>
-<li><code>@since</code> to document changes between Struts versions, as in 
<code>@since Struts 2.1.</code></li>
-<li>Wrap lines of code and JavaDoc at column 78. You can include a 
&quot;comment rule&quot; in the source to help with
+  <li>Omit <code>@author</code> tags.</li>
+  <li><code>@since</code> to document changes between Struts versions, as in 
<code>@since Struts 2.1.</code></li>
+  <li>Wrap lines of code and JavaDoc at column 78. You can include a 
“comment rule” in the source to help with
 this.</li>
-<li>Please do your best to provide high-quality Javadocs for all source code 
elements. Package overviews
-(aka &quot;Developer Guides&quot;) are also encouraged.</li>
-<li>When working on a bugfix, please first write a test case that proves the 
bug exists, and then use the test
+  <li>Please do your best to provide high-quality Javadocs for all source code 
elements. Package overviews
+(aka “Developer Guides”) are also encouraged.</li>
+  <li>When working on a bugfix, please first write a test case that proves the 
bug exists, and then use the test
 to prove the bug is fixed. =:0)</li>
-<li>When working on an enhancement, please feel free to use test-driven design 
and write the test first <code>&lt;head-slap/&gt;</code></li>
-<li>As files are updated from year to year, the copyright on each file should 
be extended to include the current
+  <li>When working on an enhancement, please feel free to use test-driven 
design and write the test first <code>&lt;head-slap/&gt;</code></li>
+  <li>As files are updated from year to year, the copyright on each file 
should be extended to include the current
 year. <em>You do not need to change the copyright year unless you change the 
file.</em>  Every source file should
 include the ASF copyright notice and current Apache License and copyright.</li>
-<li>Provide high-level API compatibility for any changes made within the same 
major release series (#.x.x).
+  <li>Provide high-level API compatibility for any changes made within the 
same major release series (#.x.x).
 Changes which adversely affect compatibility should be slotted for the next 
major release series (++#.x.x).</li>
-<li>Our favorite books about programming are
+  <li>Our favorite books about programming are
 <a 
href="http://www.amazon.com/exec/obidos/ISBN=0201633612/apachesoftwar-20/";>Design
 Patterns</a>,
-<a 
href="http://www.amazon.com/exec/obidos/ISBN=0201485672/apachesoftwar-20/,%0Aand%20%5BCode%20Complete%5D(http://www.amazon.com/exec/obidos/ISBN=0735619670/apachesoftwar-20/";>Refactoring</a></li>
-<li>Our favorite book about open source development is the
+[Refactoring](http://www.amazon.com/exec/obidos/ISBN=0201485672/apachesoftwar-20/,
+and <a 
href="http://www.amazon.com/exec/obidos/ISBN=0735619670/apachesoftwar-20/";>Code 
Complete</a></li>
+  <li>Our favorite book about open source development is the
 <a 
href="http://www.amazon.com/exec/obidos/ISBN=1565927249/apachesoftwar-20/";>The 
Cathedral and the Bazaar</a></li>
-<li>Our favorite science fiction author is
+  <li>Our favorite science fiction author is
 <a href="http://www.nitrosyncretic.com/rah/";>Robert Heinlein</a>,
 <a href="http://jargon.net/jargonfile/t/TANSTAAFL.html";>TANSTAAFL</a>,
 (Except on Friday, when we favor <a 
href="http://news.bbc.co.uk/1/hi/uk/1326657.stm";>Douglas Adams</a>).</li>
@@ -268,5 +270,19 @@ Changes which adversely affect compatibi
 }(document, 'script', 'facebook-jssdk'));</script>
 
 
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, icon, id;
+    $el = $(el);
+    id = $el.attr('id');
+    icon = '<i class="fa fa-link"></i>';
+    if (id) {
+      return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + 
id).html(icon));
+    }
+  });
+});
+</script>
+
 </body>
 </html>


Reply via email to