<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>Updating the website</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/css/syntax.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>

  <!-- Matomo -->
  <script>
    var _paq = window._paq = window._paq || [];
    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
    /* We explicitly disable cookie tracking to avoid privacy issues */
    _paq.push(['disableCookies']);
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
      var u="//analytics.apache.org/";
      _paq.push(['setTrackerUrl', u+'matomo.php']);
      _paq.push(['setSiteId', '41']);
      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
    })();
  </script>
  <!-- End Matomo Code -->
</head>
<body>

<a href="https://github.com/apache/struts" class="github-ribbon">
  <img decoding="async" loading="lazy" style="position: absolute; right: 0; border: 0;" width="149" height="149" src="https://github.blog/wp-content/uploads/2008/12/forkme_right_red_aa0000.png?resize=149%2C149" class="attachment-full size-full" alt="Fork me on GitHub" data-recalc-dims="1">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce-2024.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li><a href="/commercial-support.html">Commercial Support</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/updating-website.md" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <h1 class="no_toc" id="updating-the-website">Updating the website</h1>

<ul id="markdown-toc">
  <li><a href="#the-setup" id="markdown-toc-the-setup">The setup</a></li>
  <li><a href="#applying-a-change" id="markdown-toc-applying-a-change">Applying a change</a></li>
  <li><a href="#deploying-javadocs" id="markdown-toc-deploying-javadocs">Deploying JavaDocs</a></li>
  <li><a href="#example-styles" id="markdown-toc-example-styles">Example styles</a>    <ul>
      <li><a href="#text-alignment" id="markdown-toc-text-alignment">Text alignment</a></li>
      <li><a href="#text-color" id="markdown-toc-text-color">Text color</a></li>
      <li><a href="#background" id="markdown-toc-background">Background</a></li>
      <li><a href="#label" id="markdown-toc-label">Label</a></li>
      <li><a href="#panel" id="markdown-toc-panel">Panel</a></li>
    </ul>
  </li>
</ul>

<h2 id="the-setup">The setup</h2>

<p>The whole website is available in a dedicated Git <a href="https://gitbox.apache.org/repos/asf?p=struts-site.git">repository</a>, 
you can also use a Github <a href="https://github.com/apache/struts-site">mirror</a>.</p>

<p>The <code class="language-plaintext highlighter-rouge">master</code> branch contains the current source code of the website, any changes should be applied to this branch, 
also any Pull Request should be opened against this branch as well.</p>

<p>We are using Jekyll and mix of Markdown pages with raw Html pages, where Markdown is a preferred option.</p>

<blockquote>
  <p>WARN: do not manually change the <code class="language-plaintext highlighter-rouge">asf-site</code> or <code class="language-plaintext highlighter-rouge">ast-staging</code> branches, they will be automatically updated
by a CI server.</p>
</blockquote>

<p>The whole build of the website is orchestrated by <a href="http://s.apache.org/asfyaml">.asf.yaml</a>, please refer to the docs
for more details. The main build of the website is performed by <a href="https://ci2.apache.org/#/builders/7">a buildbot job</a>,
the staging site is build and deployed by 
<a href="https://builds.apache.org/job/Struts/job/Struts-staged-site/">a Jenkins job</a> - buildbot doesn’t support staging site deployment yet.</p>

<h2 id="applying-a-change">Applying a change</h2>

<p>If you are a contributor, and the change is small you can push it directly to the <code class="language-plaintext highlighter-rouge">master</code> branch. In any other case
please open a Pull Request. The Pull Request will be automatically build and deployed to the <a href="https://struts.staged.apache.org/">staging site</a>.</p>

<p>You can then review your changes before applying them to the <code class="language-plaintext highlighter-rouge">master</code> branch.</p>

<h2 id="deploying-javadocs">Deploying JavaDocs</h2>

<p>There is a dedicated <a href="https://builds.apache.org/job/Struts/job/Struts-site-javadocs/">Jenkins job</a> which is
used to update the JavaDocs based on the latest release. If you have a proper privileges you can start the job
and provide a Git tag of the latest release, eg. <code class="language-plaintext highlighter-rouge">STRUTS_2_5_22</code>. Based on the tag, Jenkins will generate a proper
JavaDocs and deploy them directly into the website. You can verify them by using this <a href="https://struts.staged.apache.org/maven/struts2-core/apidocs/index">link</a>.</p>

<h2 id="example-styles">Example styles</h2>

<p>Below you will find an example styles and panels you can use when developing the webpage</p>

<h3 id="text-alignment">Text alignment</h3>

<p class="text-right">Text right</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text right
{:.text-right}
</code></pre></div></div>

<p class="text-center">Text center</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text center
{:.text-center}
</code></pre></div></div>

<p class="text-left">Text left</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text left
{:.text-left}
</code></pre></div></div>

<p class="text-justify">Text justify</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text justify
{:.text-justify}
</code></pre></div></div>

<h3 id="text-color">Text color</h3>

<p class="text-primary">Text primary</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text primary
{:.text-primary}
</code></pre></div></div>

<p class="text-info">Text info</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text info
{:.text-info}
</code></pre></div></div>

<p class="text-success">Text success</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text success
{:.text-success}
</code></pre></div></div>

<p class="text-warning">Text warning</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text warning
{:.text-warning}
</code></pre></div></div>

<p class="text-danger">Text danger</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Text danger
{:.text-danger}
</code></pre></div></div>

<h3 id="background">Background</h3>

<p class="bg-primary">Background primary</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Background primary
{:.bg-primary}
</code></pre></div></div>

<p class="bg-info">Background info</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Background info
{:.bg-info}
</code></pre></div></div>

<p class="bg-success">Background success</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Background success
{:.bg-success}
</code></pre></div></div>

<p class="bg-warning">Background warning</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Background warning
{:.bg-warning}
</code></pre></div></div>

<p class="bg-danger">Background danger</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Background danger
{:.bg-danger}
</code></pre></div></div>

<h3 id="label">Label</h3>

<p class="label label-primary">Label primary</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Label primary
{:.label .label-primary}
</code></pre></div></div>

<p class="label label-info">Label info</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Label info
{:.label .label-info}
</code></pre></div></div>

<p class="label label-success">Label success</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Label success
{:.label .label-success}
</code></pre></div></div>

<p class="label label-warning">Label warning</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Label warning
{:.label .label-warning}
</code></pre></div></div>

<p class="label label-danger">Label danger</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Label danger
{:.label .label-danger}
</code></pre></div></div>

<h3 id="panel">Panel</h3>

<p class="alert alert-info">Info panel</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Info panel
{:.alert alert-info}
</code></pre></div></div>

<p class="alert alert-success">Success panel</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Success panel
{:.alert alert-success}
</code></pre></div></div>

<p class="alert alert-warning">Warning panel</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Warning panel
{:.alert alert-warning}
</code></pre></div></div>

<p class="alert alert-danger">Danger panel</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Danger panel
{:.alert alert-danger}
</code></pre></div></div>

  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation. All Rights Reserved.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
