| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width,initial-scale=1"> |
| <title>Apache James website :: Apache James</title> |
| <meta name="generator" content="Antora 2.3.4"> |
| <link rel="stylesheet" href="../../_/css/site.css"> |
| </head> |
| <body class="article"> |
| <header class="header"> |
| <nav class="navbar"> |
| <div class="navbar-brand"> |
| <a class="navbar-item" href="https://james.apache.org"><img src="/_/img/james.svg" alt="james logo"> Apache James</a> |
| <button class="navbar-burger" data-target="topbar-nav"> |
| <span></span> |
| <span></span> |
| <span></span> |
| </button> |
| </div> |
| <div id="topbar-nav" class="navbar-menu"> |
| <div class="navbar-end"> |
| <a class="navbar-item" href="#">Home</a> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a class="navbar-link" href="#">Products</a> |
| <div class="navbar-dropdown"> |
| <div class="navbar-item"><strong>James server</strong></div> |
| <a class="navbar-item" href="https://github.com/apache/james-project">Repository</a> |
| <a class="navbar-item" href="https://issues.apache.org/jira/projects/JAMES/issues">Issue Tracker</a> |
| <hr class="navbar-divider"> |
| <a class="navbar-item" href="https://james.apache.org/mime4j/index.html">Mime4J</a> |
| <a class="navbar-item" href="https://james.apache.org/jsieve/index.html">jSieve</a> |
| <a class="navbar-item" href="https://james.apache.org/jspf/index.html">jSPF</a> |
| <a class="navbar-item" href="https://james.apache.org/jdkim/index.html">jDKIM</a> |
| <a class="navbar-item" href="https://james.apache.org/hupa/index.html">HUPA</a> |
| </div> |
| </div> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a class="navbar-link" href="#">Community</a> |
| <div class="navbar-dropdown"> |
| <!-- Not ideal but dropping the version in the href requires tweaking james-projet docs module first --> |
| <a class="navbar-item" href="/james-project/3.6.0/community/mailing-lists.html">Mailing lists</a> |
| <a class="navbar-item" href="https://gitter.im/apache/james-project"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="logo-gitter-sign" data-v-44ebcb1a=""><rect x="15" y="5" width="2" height="10"></rect> <rect x="10" y="5" width="2" height="20"></rect> <rect x="5" y="5" width="2" height="20"></rect> <rect width="2" height="15"></rect></svg> Gitter</a> |
| <a class="navbar-item" href="https://twitter.com/ApacheJames"> |
| <span class="icon"> |
| <svg aria-hidden="true" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> |
| <path fill="#57aaee" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path> |
| </svg> |
| </span> Twitter |
| </a> |
| <a class="navbar-item" href="#"> <svg class="octicon octicon-mark-github v-align-middle" viewBox="0 0 16 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg> Github</a> |
| </div> |
| </div> |
| <!-- <div class="navbar-item"> |
| <span class="control"> |
| <a class="button is-primary" href="#">Download</a> |
| </span> |
| </div> --> |
| </div> |
| </div> |
| </nav> |
| </header> |
| <div class="body"> |
| <div class="nav-container" data-component="james-site" data-version="latest"> |
| <aside class="nav"> |
| <div class="panels"> |
| <div class="nav-panel-explore is-active" data-panel="explore"> |
| <div class="context"> |
| <span class="title">Apache James Site</span> |
| <span class="version">latest</span> |
| </div> |
| <ul class="components"> |
| <li class="component"> |
| <div class="title"><a href="../../james-project/3.8.1/index.html">Apache James Server</a></div> |
| <ul class="versions"> |
| <li class="version is-latest"> |
| <a href="../../james-project/3.8.1/index.html">3.8.1 SNAPSHOT</a> |
| </li> |
| </ul> |
| </li> |
| <li class="component is-current"> |
| <div class="title"><a href="index.html">Apache James Site</a></div> |
| <ul class="versions"> |
| <li class="version is-current is-latest"> |
| <a href="index.html">latest</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </aside> |
| </div> |
| <main class="article"> |
| <div class="toolbar" role="navigation"> |
| <button class="nav-toggle"></button> |
| <a href="homepage.html" class="home-link"></a> |
| <nav class="breadcrumbs" aria-label="breadcrumbs"> |
| </nav> |
| <div class="edit-this-page"><a href="https://github.com/apache/james-site/blob/HEAD/docs/modules/ROOT/pages/index.adoc">Edit this Page</a></div> |
| </div> |
| <div class="content"> |
| <aside class="toc sidebar" data-title="Contents" data-levels="2"> |
| <div class="toc-menu"></div> |
| </aside> |
| <article class="doc"> |
| <h1 class="page">Apache James website</h1> |
| <div id="preamble"> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>This repository is used for storing (some) content for <a href="https://james.apache.org">Apache James</a> website.</p> |
| </div> |
| <div class="paragraph"> |
| <p>It’s also used to build and publish the website.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_how_to_build_the_website"><a class="anchor" href="#_how_to_build_the_website"></a>How to build the website</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>We use <a href="https://antora.org">Antora</a> as a tool to manage and generate the website. |
| We use <a href="https://gradle.org">Gradle</a> as a tool to drive / automate the tasks for generating, aggregating and publishing the website.</p> |
| </div> |
| <div class="sect2"> |
| <h3 id="_why_antora"><a class="anchor" href="#_why_antora"></a>Why Antora?</h3> |
| <div class="paragraph"> |
| <p>Antora lets us aggregate multiple documentation sources, across multiple versions and publish them as a single website. |
| Documentation for each Apache James component is kept and versioned alongside the code for it.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_why_gradle"><a class="anchor" href="#_why_gradle"></a>Why Gradle?</h3> |
| <div class="paragraph"> |
| <p>Gralde allows us to autoamte the tasks that we do when publishing a website. |
| We write gradle tasks for building and publishing the website. |
| We can run those tasks locally and inside our CI infrastructure: <a href="https://builds.apache.org">Apache Builds</a>.</p> |
| </div> |
| <div class="paragraph"> |
| <p>More specifically, we use Gradle to:</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>Download and install a specific version of <a href="https://nodejs.org">NodeJS</a> using <a href="https://github.com/node-gradle/gradle-node-plugin">Gradle Node Plugin</a></p> |
| </li> |
| <li> |
| <p>Install a local version of Antora</p> |
| </li> |
| <li> |
| <p>Use a Gradle task to call build the website with Antora</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>By using this specific flow, you only need <code>git</code>, <code>Java</code> and shell access to build the website. |
| All other dependencies are installed automatically by Gradle. |
| Even Gradle is downloaded and installed using the Gradle wrapper script.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_how_to_build_the_website_2"><a class="anchor" href="#_how_to_build_the_website_2"></a>How to build the website</h2> |
| <div class="sectionbody"> |
| <div class="listingblock"> |
| <div class="content"> |
| <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"> # To build the website run |
| ./gradlew clean build |
| # The website is located here |
| cd doc-sites/build/site</code></pre> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_how_to_customize_the_theme_for_the_documentaion"><a class="anchor" href="#_how_to_customize_the_theme_for_the_documentaion"></a>How to customize the theme for the documentaion</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>The documentation website is based on <a href="https://antora.org">Antora</a>. |
| We have added <a href="https://gitlab.com/antora/antora-ui-default/">antora-ui-default</a> project as a git subtree under <code>antora-ui</code>.</p> |
| </div> |
| <div class="paragraph"> |
| <p><code>./gradlew :antora-ui:build</code> will assemble the <code>antora-ui/build/ui-bundle.zip</code> archive required for the website. |
| All the steps are automated as Gradle tasks in that project. |
| All you have to do is change the css and html files and then rebuild the project.</p> |
| </div> |
| <div class="paragraph"> |
| <p>The antora-ui project has a preview mode: <code>/.gradlew gulpPreviewTheme</code></p> |
| </div> |
| <div class="listingblock"> |
| <div class="content"> |
| <pre class="highlightjs highlight"><code class="language-shell hljs" data-lang="shell"> # antora-ui-default was added like this. You should be able to pull some changes from upstream |
| git subtree add --prefix antora-ui https://gitlab.com/antora/antora-ui-default.git master --squash</code></pre> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_related_links"><a class="anchor" href="#_related_links"></a>Related links</h3> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p><a href="https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844">A git subtree tutorial</a>.</p> |
| </li> |
| <li> |
| <p><a href="https://docs.antora.org/antora/2.3/playbook/configure-ui/">Antora UI keys</a></p> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </div> |
| </article> |
| </div> |
| </main> |
| </div> |
| <footer class="footer"> |
| <p>This page was built using the Antora default UI.</p> |
| <p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p> |
| </footer> |
| <script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script> |
| <script async src="../../_/js/vendor/highlight.js"></script> |
| </body> |
| </html> |