<!DOCTYPE html><html><head><meta charset="utf-8"><title>Apache Pony Mail (Incubating)</title>
<link rel="stylesheet" type="text/css" href="/css/default.css"/>
<link rel="stylesheet" type="text/css" href="/css/fa/fa.css"/>
<link rel="apple-touch-icon" sizes="57x57" href="/icons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/icons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/icons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/icons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/icons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/icons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
<link rel="manifest" href="/icons/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/icons/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
</head><body>
<div id="titlebar">
    <a href="/contribute.html"><img align='left' style="width: 150px; height: 145px; position: relative; left: -4px; top: -4px; border: 0;" src="/images/devme.png" alt="Fork/Hack on Pony Mail"></a>
    <h1><a id="title" href="/" style="color: #FFF !important;">Apache Pony Mail&trade; (Incubating)</a></h1>
    <div id="menubar">
        <ul>
            <li><a href="/docs.html"><i class="fa fa-book"></i><span>Documentation</span></a></li>
            <li><a href="/source.html"><i class="fa fa-git-square"></i><span>Source</span></a></li>
            <li><a href="/downloads.html"><i class="fa fa-cloud-download"></i><span>Download</span></a></li>
            <li><a href="/support.html"><i class="fa fa-question-circle"></i><span>Get support</span></a></li>
            <li><a href="/contribute.html"><i class="fa fa-share-alt"></i><span>Contribute</span></a></li>
            <li><a href="/about.html"><i class="fa fa-users"></i><span>About</span></a></li>
        </ul>
    </div>
</div>
<h1 id='buildingponymailforproduction'>Building Pony Mail for Production<a href='#buildingponymailforproduction' style='color: rgba(0,0,0,0);'>&para;</a></h1>
<p>Most of Pony Mail is ready-for-deployment files that just need to be checked out
in order to work. Some areas, such as the JavaScript needs to be combined by a script,
as they have been split into several smaller files to make it easier to find and
work on various elements of the rendering process.</p>
<h3 id='buildingthejavascriptchunks'>Building the JavaScript chunks<a href='#buildingthejavascriptchunks' style='color: rgba(0,0,0,0);'>&para;</a></h3>
<p>All JavaScript edits should be done to the <code>site/js/dev/*.js</code> files.
Once done, you should run combine.sh in the <code>site/js/dev</code> directory 
to generate ponymail.js from the scripts in the dev dir:</p>
<pre><code>$cd site/js/dev
$bash combine.sh
Combining JS...
Done!
$
</code></pre>
<p>You may choose to commit the initial JS changes first before 
committing the new combined JS, but that's up to you.</p>
<h4><a id="disclaimer"></a>Disclaimer</h4>
<p style="font-size: 8pt; line-height: 12pt;">
    <a href="https://incubator.apache.org"><img src="/images/podling.svg" align="right" width="220px"/></a>
    Apache Pony Mail (Incubating) is an effort undergoing incubation at
    The Apache Software Foundation (ASF), sponsored by the <a href="https://incubator.apache.org">
    Apache Incubator</a>. Incubation is required of all newly accepted projects
    until a further review indicates that the infrastructure,
    communications, and decision making process have stabilized in a
    manner consistent with other successful ASF projects. While
    incubation status is not necessarily a reflection of the
    completeness or stability of the code, it does indicate that the
    project has yet to be fully endorsed by the ASF.
</p>
<p style="font-size: 8pt; line-height: 12pt;">
    Copyright 2016, the Apache Software Foundation.<br/>
    Apache Pony Mail and the Apache Pony Mail logo are trademarks of the Apache Software Foundation.
    Apache and the Apache feather are registered trademarks of the
    Apache Software Foundation.
</p>
</body></html>
