You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ja...@apache.org on 2019/11/11 08:42:56 UTC

[lucene-site] branch master updated: Refactor Pelican templates to reduce code duplication (#3)

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

janhoy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 3d72ff4  Refactor Pelican templates to reduce code duplication (#3)
3d72ff4 is described below

commit 3d72ff46cdfa988494d287cabce85cdd9f9c53f1
Author: Adam Walz <ad...@adamwalz.net>
AuthorDate: Mon Nov 11 00:42:50 2019 -0800

    Refactor Pelican templates to reduce code duplication (#3)
    
    * Refactor lucene theme to reduce code duplication
    * Refactor solr template to reduce code duplication
    * Add info about update release versions in README.md
    * Fix broken link to lucene global.css
---
 README.md                                          |   22 +
 content/pages/core/corenews.md                     |    6 +-
 content/pages/core/developer.md                    |   53 +-
 content/pages/core/discussion.md                   |   16 +-
 content/pages/core/documentation.md                |    8 +-
 content/pages/core/downloads.md                    |   44 +-
 content/pages/core/index.md                        |   38 +-
 content/pages/core/quickstart.md                   |   12 +-
 content/pages/core/sidebar.md                      |   56 -
 content/pages/core/systemreqs.md                   |    9 +-
 content/pages/index.md                             |    4 +-
 content/pages/latestversion.md                     |    6 +-
 content/pages/mirrors-core-latest-redir.md         |    4 +-
 content/pages/mirrors-core-redir.md                |    4 +-
 content/pages/news.md                              |    4 +-
 content/pages/openrelevance/index.md               |   15 +-
 content/pages/openrelevance/mailing-lists.md       |    4 +-
 content/pages/openrelevance/sidebar.md             |   29 -
 content/pages/privacy.md                           |    4 +-
 content/pages/pylucene/features.md                 |  289 +-
 content/pages/pylucene/index.md                    |   63 +-
 content/pages/pylucene/install.md                  |  126 +-
 content/pages/pylucene/jcc/features.md             |  781 ++--
 content/pages/pylucene/jcc/index.md                |   44 +-
 content/pages/pylucene/jcc/install.md              |  303 +-
 content/pages/pylucene/jcc/sidebar.md              |   30 -
 content/pages/pylucene/mailing-lists.md            |   61 +-
 content/pages/pylucene/sidebar.md                  |   38 -
 content/pages/pylucene/version_control.md          |   12 +-
 content/pages/sidebar.md                           |   55 -
 content/pages/site-instructions.md                 |    4 +-
 content/pages/solr/community.md                    |    2 +-
 content/pages/solr/downloads.md                    |   78 +-
 content/pages/solr/features.md                     |  913 +----
 content/pages/solr/guide.md                        |    4 +-
 content/pages/solr/index.md                        |    2 +-
 content/pages/solr/logos-and-assets.md             |   67 +-
 content/pages/solr/news.md                         |    2 +-
 content/pages/solr/quickstart.md                   |    4 +-
 content/pages/solr/resources.md                    |   49 +-
 content/pages/whoweare.md                          |    4 +-
 pelicanconf.py                                     |    8 +
 themes/lucene/static/css/lucene-core/global.css    | 1138 ------
 themes/lucene/static/css/lucene-tlp/global.css     | 1138 ------
 .../static/css/{lucene-core => lucene}/core.css    |   34 +-
 .../static/css/{pylucene => lucene}/global.css     |   42 +-
 .../static/css/{openrelevance => lucene}/orp.css   |   38 +-
 .../static/css/{pylucene => lucene}/pylucene.css   |   38 +-
 themes/lucene/static/css/openrelevance/global.css  | 1138 ------
 themes/lucene/static/css/pylucene-jcc/global.css   | 1138 ------
 themes/lucene/static/css/pylucene-jcc/pylucene.css |  933 -----
 .../lucene/static/images/lucene-core/backward.gif  |  Bin 569 -> 0 bytes
 themes/lucene/static/images/lucene-core/bg.png     |  Bin 3894 -> 0 bytes
 themes/lucene/static/images/lucene-core/bullet.gif |  Bin 279 -> 0 bytes
 .../lucene/static/images/lucene-core/forward.gif   |  Bin 355 -> 0 bytes
 .../static/images/lucene-core/header_hot.jpg       |  Bin 13394 -> 0 bytes
 .../static/images/lucene-core/highlight-bullet.gif |  Bin 160 -> 0 bytes
 .../static/images/lucene-core/lucene-favicon.ico   |  Bin 1166 -> 0 bytes
 .../images/lucene-core/lucene_logo_green_300.png   |  Bin 4359 -> 0 bytes
 .../static/images/lucene-core/mantle-asf.png       |  Bin 43710 -> 0 bytes
 .../static/images/lucene-core/mantle-power.png     |  Bin 43710 -> 0 bytes
 themes/lucene/static/images/lucene-core/pause.gif  |  Bin 644 -> 0 bytes
 themes/lucene/static/images/lucene-core/search.gif |  Bin 344 -> 0 bytes
 themes/lucene/static/images/lucene-core/start.gif  |  Bin 341 -> 0 bytes
 .../lucene/static/images/lucene-core/wrapper.jpg   |  Bin 16799 -> 0 bytes
 .../lucene/static/images/lucene-tlp/backward.gif   |  Bin 569 -> 0 bytes
 themes/lucene/static/images/lucene-tlp/bg.png      |  Bin 3894 -> 0 bytes
 themes/lucene/static/images/lucene-tlp/bullet.gif  |  Bin 279 -> 0 bytes
 themes/lucene/static/images/lucene-tlp/forward.gif |  Bin 355 -> 0 bytes
 .../lucene/static/images/lucene-tlp/header_hot.jpg |  Bin 13394 -> 0 bytes
 .../static/images/lucene-tlp/highlight-bullet.gif  |  Bin 160 -> 0 bytes
 .../static/images/lucene-tlp/lucene-favicon.ico    |  Bin 1166 -> 0 bytes
 .../images/lucene-tlp/lucene_logo_green_300.png    |  Bin 4359 -> 0 bytes
 themes/lucene/static/images/lucene-tlp/pause.gif   |  Bin 644 -> 0 bytes
 themes/lucene/static/images/lucene-tlp/search.gif  |  Bin 344 -> 0 bytes
 themes/lucene/static/images/lucene-tlp/start.gif   |  Bin 341 -> 0 bytes
 themes/lucene/static/images/lucene-tlp/wrapper.jpg |  Bin 16799 -> 0 bytes
 .../images/{pylucene => lucene}/backward.gif       |  Bin
 .../static/images/{pylucene => lucene}/bg.png      |  Bin
 .../static/images/{pylucene => lucene}/bullet.gif  |  Bin
 .../core}/mantle-innovation.png                    |  Bin
 .../{lucene-core => lucene/core}/mantle-lucene.png |  Bin
 .../static/images/{pylucene => lucene}/forward.gif |  Bin
 .../images/{pylucene => lucene}/header_hot.jpg     |  Bin
 .../{pylucene => lucene}/highlight-bullet.gif      |  Bin
 .../images/{pylucene => lucene}/lucene-favicon.ico |  Bin
 .../{pylucene => lucene}/lucene_logo_green_300.png |  Bin
 .../images/{lucene-tlp => lucene}/mantle-asf.png   |  Bin
 .../images/{lucene-tlp => lucene}/mantle-power.png |  Bin
 .../static/images/{pylucene => lucene}/pause.gif   |  Bin
 .../static/images/{pylucene => lucene}/search.gif  |  Bin
 .../static/images/{pylucene => lucene}/start.gif   |  Bin
 .../tlp}/mantle-community.png                      |  Bin
 .../tlp}/mantle-lucene-solr.png                    |  Bin
 .../static/images/{pylucene => lucene}/wrapper.jpg |  Bin
 .../static/images/openrelevance/backward.gif       |  Bin 569 -> 0 bytes
 themes/lucene/static/images/openrelevance/bg.png   |  Bin 3894 -> 0 bytes
 .../lucene/static/images/openrelevance/bullet.gif  |  Bin 279 -> 0 bytes
 .../lucene/static/images/openrelevance/forward.gif |  Bin 355 -> 0 bytes
 .../static/images/openrelevance/header_hot.jpg     |  Bin 13394 -> 0 bytes
 .../images/openrelevance/highlight-bullet.gif      |  Bin 160 -> 0 bytes
 .../static/images/openrelevance/lucene-favicon.ico |  Bin 1166 -> 0 bytes
 .../images/openrelevance/lucene_logo_green_300.png |  Bin 4359 -> 0 bytes
 .../lucene/static/images/openrelevance/pause.gif   |  Bin 644 -> 0 bytes
 .../lucene/static/images/openrelevance/search.gif  |  Bin 344 -> 0 bytes
 .../lucene/static/images/openrelevance/start.gif   |  Bin 341 -> 0 bytes
 .../lucene/static/images/openrelevance/wrapper.jpg |  Bin 16799 -> 0 bytes
 .../lucene/static/images/pylucene-jcc/backward.gif |  Bin 569 -> 0 bytes
 themes/lucene/static/images/pylucene-jcc/bg.png    |  Bin 3894 -> 0 bytes
 .../lucene/static/images/pylucene-jcc/bullet.gif   |  Bin 279 -> 0 bytes
 .../lucene/static/images/pylucene-jcc/forward.gif  |  Bin 355 -> 0 bytes
 .../static/images/pylucene-jcc/header_hot.jpg      |  Bin 13394 -> 0 bytes
 .../images/pylucene-jcc/highlight-bullet.gif       |  Bin 160 -> 0 bytes
 .../static/images/pylucene-jcc/lucene-favicon.ico  |  Bin 1166 -> 0 bytes
 .../images/pylucene-jcc/lucene_logo_green_300.png  |  Bin 4359 -> 0 bytes
 themes/lucene/static/images/pylucene-jcc/pause.gif |  Bin 644 -> 0 bytes
 .../lucene/static/images/pylucene-jcc/search.gif   |  Bin 344 -> 0 bytes
 themes/lucene/static/images/pylucene-jcc/start.gif |  Bin 341 -> 0 bytes
 .../lucene/static/images/pylucene-jcc/wrapper.jpg  |  Bin 16799 -> 0 bytes
 .../Solr_Icons_advanced,_configurable_text.svg     |    0
 .../solr/Solr_Icons_advanced_full-text_search.svg  |    0
 .../images/solr/Solr_Icons_an_ajax_based.svg       |    0
 .../static}/images/solr/Solr_Icons_apache_uima.svg |    0
 .../solr/Solr_Icons_comprehensive_html_admin.svg   |    0
 .../solr/Solr_Icons_easy_ways_to_pull_in_data.svg  |    0
 .../images/solr/Solr_Icons_extensible_plugin.svg   |    0
 .../images/solr/Solr_Icons_faceted_search.svg      |    0
 .../images/solr/Solr_Icons_fast_near_real-time.svg |    0
 .../solr/Solr_Icons_flexible_and_adaptable.svg     |    0
 .../images/solr/Solr_Icons_geospatial_search.svg   |    0
 .../images/solr/Solr_Icons_highly_configurable.svg |    0
 .../images/solr/Solr_Icons_highy_scalable.svg      |    0
 .../static}/images/solr/Solr_Icons_json,_xml.svg   |    0
 .../Solr_Icons_linearly_scalable,_auto_index.svg   |    0
 .../images/solr/Solr_Icons_monitorable_logging.svg |    0
 .../solr/Solr_Icons_multiple_search_indices.svg    |    0
 .../solr/Solr_Icons_optimized_for_high_volume.svg  |    0
 .../solr/Solr_Icons_performance_optimizations.svg  |    0
 .../images/solr/Solr_Icons_powerful_extensions.svg |    0
 .../static}/images/solr/Solr_Icons_real-time.svg   |    0
 .../images/solr/Solr_Icons_rich_document.svg       |    0
 .../static}/images/solr/Solr_Icons_schemaless.svg  |    0
 .../static}/images/solr/Solr_Icons_security.svg    |    0
 .../solr/Solr_Icons_server_statistics_exposed.svg  |    0
 .../Solr_Icons_standards_based_open_interfaces.svg |    0
 .../static}/images/solr/identity/Solr_Icons.pdf    |    0
 .../images/solr/identity/Solr_Logo_on_black.pdf    |    0
 .../images/solr/identity/Solr_Logo_on_black.png    |  Bin
 .../images/solr/identity/Solr_Logo_on_orange.pdf   |    0
 .../images/solr/identity/Solr_Logo_on_orange.png   |  Bin
 .../images/solr/identity/Solr_Logo_on_white.pdf    |    0
 .../images/solr/identity/Solr_Logo_on_white.png    |  Bin
 .../images/solr/identity/Solr_Styleguide.pdf       |    0
 .../static/javascript/lucene-core/effects.js       | 1130 -----
 .../lucene/static/javascript/lucene-core/jquery.js |   18 -
 .../static/javascript/lucene-core/prototype.js     | 4320 --------------------
 .../lucene/static/javascript/lucene-core/search.js |   21 -
 .../lucene/static/javascript/lucene-core/slides.js |  109 -
 .../lucene/static/javascript/lucene-tlp/effects.js | 1130 -----
 .../lucene/static/javascript/lucene-tlp/jquery.js  |   18 -
 .../static/javascript/lucene-tlp/prototype.js      | 4320 --------------------
 .../lucene/static/javascript/lucene-tlp/search.js  |   21 -
 .../lucene/static/javascript/lucene-tlp/slides.js  |  109 -
 .../javascript/{pylucene => lucene}/effects.js     |    0
 .../javascript/{pylucene => lucene}/jquery.js      |    0
 .../javascript/{pylucene => lucene}/prototype.js   |    0
 .../javascript/{pylucene => lucene}/search.js      |    0
 .../javascript/{pylucene => lucene}/slides.js      |    0
 .../static/javascript/openrelevance/effects.js     | 1130 -----
 .../static/javascript/openrelevance/jquery.js      |   18 -
 .../static/javascript/openrelevance/prototype.js   | 4320 --------------------
 .../static/javascript/openrelevance/search.js      |   21 -
 .../static/javascript/openrelevance/slides.js      |  109 -
 .../static/javascript/pylucene-jcc/effects.js      | 1130 -----
 .../static/javascript/pylucene-jcc/jquery.js       |   18 -
 .../static/javascript/pylucene-jcc/prototype.js    | 4320 --------------------
 .../static/javascript/pylucene-jcc/search.js       |   21 -
 .../static/javascript/pylucene-jcc/slides.js       |  109 -
 .../templates/{lucene-tlp => }/_analytics.html     |    4 +-
 .../lucene/templates/lucene-core/_analytics.html   |   13 -
 themes/lucene/templates/lucene-core/_footer.html   |   12 -
 themes/lucene/templates/lucene-core/_search.html   |   63 -
 themes/lucene/templates/lucene-core/base.html      |   66 -
 themes/lucene/templates/lucene-core/main.html      |   99 -
 themes/lucene/templates/lucene-core/news.html      |   27 -
 themes/lucene/templates/lucene-core/page.html      |   12 -
 themes/lucene/templates/lucene-tlp/_footer.html    |   12 -
 themes/lucene/templates/lucene-tlp/_search.html    |   63 -
 themes/lucene/templates/lucene-tlp/asf.mdtext      |    3 -
 themes/lucene/templates/lucene-tlp/base.html       |   66 -
 themes/lucene/templates/lucene-tlp/main.html       |   87 -
 themes/lucene/templates/lucene-tlp/main_news.html  |   34 -
 themes/lucene/templates/lucene-tlp/news.html       |   34 -
 themes/lucene/templates/lucene-tlp/page.html       |   12 -
 themes/lucene/templates/lucene-tlp/splash.html     |   40 -
 themes/lucene/templates/lucene/_asf.html           |    6 +
 .../{openrelevance => lucene}/_footer.html         |    7 +-
 themes/lucene/templates/lucene/_head.html          |   24 +
 themes/lucene/templates/lucene/_javascript.html    |    4 +
 .../templates/{pylucene => lucene}/_search.html    |    0
 themes/lucene/templates/lucene/base.html           |   55 +
 themes/lucene/templates/lucene/core/_sidebar.html  |   60 +
 themes/lucene/templates/lucene/core/_slides.html   |   52 +
 .../templates/lucene/core/documentation.html       |   12 +
 themes/lucene/templates/lucene/core/downloads.html |   72 +
 themes/lucene/templates/lucene/core/news.html      |   14 +
 themes/lucene/templates/lucene/core/page.html      |   38 +
 .../lucene/templates/lucene/core/quickstart.html   |   11 +
 .../lucene/templates/lucene/core/systemreqs.html   |   12 +
 themes/lucene/templates/lucene/main.html           |   23 +
 .../templates/lucene/openrelevance/_sidebar.html   |   31 +
 .../templates/lucene/openrelevance/index.html      |   19 +
 .../templates/lucene/openrelevance/page.html       |   29 +
 .../lucene/templates/lucene/pylucene/_sidebar.html |   40 +
 themes/lucene/templates/lucene/pylucene/index.html |   19 +
 .../templates/lucene/pylucene/jcc/_sidebar.html    |   32 +
 .../lucene/templates/lucene/pylucene/jcc/page.html |   13 +
 themes/lucene/templates/lucene/pylucene/news.html  |   14 +
 themes/lucene/templates/lucene/pylucene/page.html  |   31 +
 themes/lucene/templates/lucene/tlp/_sidebar.html   |   60 +
 themes/lucene/templates/lucene/tlp/_slides.html    |   45 +
 themes/lucene/templates/lucene/tlp/index.html      |   25 +
 .../templates/lucene/tlp/latest_version.html       |    5 +
 themes/lucene/templates/lucene/tlp/news.html       |   14 +
 themes/lucene/templates/lucene/tlp/page.html       |   29 +
 .../lucene/templates/openrelevance/_analytics.html |   13 -
 themes/lucene/templates/openrelevance/_search.html |   63 -
 themes/lucene/templates/openrelevance/base.html    |   67 -
 themes/lucene/templates/openrelevance/main.html    |   25 -
 themes/lucene/templates/openrelevance/page.html    |   12 -
 themes/lucene/templates/openrelevance/splash.html  |   32 -
 .../lucene/templates/pylucene-jcc/_analytics.html  |   13 -
 themes/lucene/templates/pylucene-jcc/_footer.html  |   12 -
 themes/lucene/templates/pylucene-jcc/_search.html  |   63 -
 themes/lucene/templates/pylucene-jcc/base.html     |   67 -
 themes/lucene/templates/pylucene-jcc/main.html     |   25 -
 themes/lucene/templates/pylucene-jcc/page.html     |   12 -
 themes/lucene/templates/pylucene/_analytics.html   |   13 -
 themes/lucene/templates/pylucene/_footer.html      |   12 -
 themes/lucene/templates/pylucene/base.html         |   67 -
 themes/lucene/templates/pylucene/main.html         |   25 -
 themes/lucene/templates/pylucene/page.html         |   12 -
 themes/lucene/templates/pylucene/splash.html       |   35 -
 themes/lucene/templates/solr/_copyright.html       |    3 +
 themes/lucene/templates/solr/_css.html             |    7 +
 themes/lucene/templates/solr/_footer.html          |   70 +
 themes/lucene/templates/solr/_head.html            |   25 +
 themes/lucene/templates/solr/_header.html          |   43 +
 themes/lucene/templates/solr/_javascript.html      |    8 +
 themes/lucene/templates/solr/_last_scripts.html    |   46 +
 themes/lucene/templates/solr/_search.html          |   68 +
 themes/lucene/templates/solr/base.html             |   35 +
 themes/lucene/templates/solr/community.html        |  337 +-
 themes/lucene/templates/solr/downloads.html        |  143 +
 .../lucene/templates/solr/features.html            |   88 +-
 themes/lucene/templates/solr/full-width.html       |  296 --
 themes/lucene/templates/solr/fullwidth.html        |   24 +
 themes/lucene/templates/solr/index.html            |  847 ++--
 themes/lucene/templates/solr/logos-and-assets.html |   64 +
 themes/lucene/templates/solr/news.html             |  333 +-
 themes/lucene/templates/solr/page.html             |  313 +-
 themes/lucene/templates/solr/resources.html        |  336 +-
 themes/lucene/templates/solr/subnav.html           |   20 +
 263 files changed, 2643 insertions(+), 33780 deletions(-)

diff --git a/README.md b/README.md
index e26d7cf..dddc02c 100644
--- a/README.md
+++ b/README.md
@@ -50,5 +50,27 @@ both auto-regenerate and serve the output at http://localhost:8000:
 pelican --autoreload --listen
 ```
 
+## Bump Lucene/Solr latest version after a release
+
+There are variables in **pelicanconf.py** to modify the latest 2 supported release
+versions. This will affect all references to release version in the theme, but
+not in pages or articles. Pelican views pages and articles as static write-once,
+like a blog post, whereas the theme can be more dynamic and change with every
+build.
+
+Modify `LUCENE_LATEST_RELEASE` and `LUCENE_PREVIOUS_MAJOR_RELEASE`, and
+`LUCENE_LATEST_RELEASE_DATE` to affect
+
+* Full patch release versions in html such as "6.3.0".
+* Minor release versions in html such as "6.3.x".
+* References to unsupported versions such as "<6" in [Solr downloads][3].
+* References to upcoming unreleased versions such as "7" in [Solr downloads][3]
+  which is a +1 increment of the `LUCENE_LATEST_RELEASE` setting.
+* Links to source, javadocs, PGP, and SHA512 which use underscores to separate
+  version parts such as `6_3_0`
+* References to the release date of the latest version which can be dynamically
+  formatted for different pages.
+
 [1]: https://blog.getpelican.com/
 [2]: https://docs.getpelican.com/en/stable/install.html
+[3]: https://lucene.apache.org/solr/downloads.html#about-versions-and-support
diff --git a/content/pages/core/corenews.md b/content/pages/core/corenews.md
index f6f5afd..68217d6 100644
--- a/content/pages/core/corenews.md
+++ b/content/pages/core/corenews.md
@@ -1,4 +1,4 @@
-Title: Lucene™ Core News
-URL: core/
+Title: Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> Core News
+URL: core/corenews.html
 save_as: core/corenews.html
-template: lucene-core/news
+template: lucene/core/news
diff --git a/content/pages/core/developer.md b/content/pages/core/developer.md
index c003c9d..bd579f1 100644
--- a/content/pages/core/developer.md
+++ b/content/pages/core/developer.md
@@ -1,45 +1,50 @@
 Title: Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> Dev
-URL: core/
+URL: core/developer.html
 save_as: core/developer.html
 theme: lucene-core
-template: lucene-core/page
+template: lucene/core/page
 
-##Source Code
+## Source Code
 The source files are stored using GIT (see https://git-scm.com/documentation)
 
-- Latest <b>master</b>:
-<code>git clone https://github.com/apache/lucene-solr.git</code>
+- Latest **master**:
+`git clone https://github.com/apache/lucene-solr.git`
 
-##Making a Contribution
-Lucene Java is always looking for contributions. See the <a href="https://wiki.apache.org/lucene-java/HowToContribute">Wiki</a> for details on contributing.
+## Making a Contribution
+Lucene Java is always looking for contributions. See the [Wiki][1] for details on contributing.
 
-##Nightly Builds
+## Nightly Builds
 
-<a href="http://jenkins-ci.org/">Jenkins</a> is providing continuous integration capabilities to the Lucene
-project. It is responsible for running nightly builds, tests, javadocs, and code coverage reports.
+[Jenkins][2] is providing continuous integration capabilities to the Lucene project.
+It is responsible for running nightly builds, tests, javadocs, and code coverage reports.
 
 ###Nightly Build Javadocs
 Unofficial nightly Javadocs are also generated by Jenkins:
 
-- Unofficial Javadocs from the nightly <b>master</b> build are available <a href="https://builds.apache.org/view/All/job/Lucene-Artifacts-master/javadoc/">here</a>.
+- Unofficial Javadocs from the nightly **master** build are available [here][3].
 
 
-###Clover Test Coverage Reports
-<a href="http://www.atlassian.com/software/clover/">Clover</a> test coverage results are available:
+### Clover Test Coverage Reports
+[Clover][4] test coverage results are available:
 
-- As of the most recent nightly <b>master</b> build:
-    <a href="https://builds.apache.org/job/Lucene-Solr-Clover-master/lastSuccessfulBuild/clover-report/dashboard.html">here</a>
+- As of the most recent nightly **master** build: [here][5]
 
 
-###Nightly Build Download
+### Nightly Build Download
 
-- Nightly build artifacts are based on the <b>master</b> version of the code checked into
-    <a href="https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git">GIT</a>:<br/>
-  <a href="https://builds.apache.org/job/Lucene-Artifacts-master/lastSuccessfulBuild/artifact/lucene/dist/">Download master Artifacts</a>.
-  Also, Maven artifacts are available from
-  <a href="https://repository.apache.org/snapshots/org/apache/lucene/">the ASF snapshot repository</a>.
+- Nightly build artifacts are based on the **master** version of the code checked into [GIT][6]: <br/>
+  [Download master Artifacts][7]. Also, Maven artifacts are available from [the ASF snapshot repository][8].
 
-##Nightly Benchmarks
+## Nightly Benchmarks
 
-- Nightly automated benchmarks based on the <b>master</b> version of the code are available
-  <a href="http://home.apache.org/~mikemccand/lucenebench/">here</a>.
+- Nightly automated benchmarks based on the **master** version of the code are available [here][9].
+
+[1]: https://wiki.apache.org/lucene-java/HowToContribute
+[2]: http://jenkins-ci.org/
+[3]: https://builds.apache.org/view/All/job/Lucene-Artifacts-master/javadoc/
+[4]: http://www.atlassian.com/software/clover/
+[5]: https://builds.apache.org/job/Lucene-Solr-Clover-master/lastSuccessfulBuild/clover-report/dashboard.html
+[6]: https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git
+[7]: https://builds.apache.org/job/Lucene-Artifacts-master/lastSuccessfulBuild/artifact/lucene/dist/
+[8]: https://repository.apache.org/snapshots/org/apache/lucene/
+[9]: http://home.apache.org/~mikemccand/lucenebench/
diff --git a/content/pages/core/discussion.md b/content/pages/core/discussion.md
index cb25ad1..8a5acef 100644
--- a/content/pages/core/discussion.md
+++ b/content/pages/core/discussion.md
@@ -1,14 +1,14 @@
 Title: Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> Mailing Lists and IRC
-URL: core/
+URL: core/discussion.html
 save_as: core/discussion.html
-template: lucene-core/page
+template: lucene/core/page
 
 [TOC]
 
 ## Java User List: java-user@lucene.apache.org
 
 This list is for users of Java Lucene to ask questions, share knowledge,
-and discuss issues. <b>Do</b> send mail to this list with usage and configuration questions and problems.  Also, please
+and discuss issues. **Do** send mail to this list with usage and configuration questions and problems.  Also, please
 send questions to this list to verify your problem before filing issues in JIRA.
 
 - Subscribe: [java-user-subscribe](mailto:java-user-subscribe@lucene.apache.org)
@@ -24,8 +24,8 @@ send questions to this list to verify your problem before filing issues in JIRA.
 This is the list where participating developers of the Java Lucene project meet
 and discuss issues concerning Lucene/Solr internals, code changes/additions, etc.
 
-*<b>NOTE:</b> Please do not send mail to this list with usage questions or configuration
-questions and problems; that is what the java-user and solr-user mailing lists are for.*
+***NOTE:*** _Please do not send mail to this list with usage questions or configuration
+questions and problems; that is what the java-user and solr-user mailing lists are for._
 
 - Subscribe: [dev-subscribe](mailto:dev-subscribe@lucene.apache.org)
 - Unsubscribe: [dev-unsubscribe](mailto:dev-unsubscribe@lucene.apache.org)
@@ -78,15 +78,15 @@ This is an automated announcement only list where notifications about every Luce
 
 There are two primary IRC channels dedicated to Lucene at [freenode.net](http://freenode.net/).
 
-- <b>#lucene</b> -- Channel for user questions
-- <b>#lucene-dev</b> -- [Logged Channel](http://colabti.org/irclogger/irclogger_logs/lucene-dev) for Lucene development questions
+- **#lucene** -- Channel for user questions
+- **#lucene-dev** -- [Logged Channel](http://colabti.org/irclogger/irclogger_logs/lucene-dev) for Lucene development questions
 
 The IRC channel can be used for online discussion about Lucene related stuff,
 but developers should be careful to transfer all the official decisions or useful discussions to the issue tracking system.
 
 ## Slack
 
-The project's Slack channel is the <b>#lucene-solr</b> channel in the <b>the-asf</b> organization. Link: <https://the-asf.slack.com/messages/CE70MDPMF>
+The project's Slack channel is the **#lucene-solr** channel in the **the-asf** organization. Link: <https://the-asf.slack.com/messages/CE70MDPMF>
 
 ## Mail Archives
 
diff --git a/content/pages/core/documentation.md b/content/pages/core/documentation.md
index 3f37582..66f2b19 100644
--- a/content/pages/core/documentation.md
+++ b/content/pages/core/documentation.md
@@ -1,8 +1,4 @@
 Title: Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> Release Docs
-URL: core/
+URL: core/documentation.html
 save_as: core/documentation.html
-template: lucene-core/page
-
-## Java Docs
-- [8.3.0](./8_3_0/index.html)
-- [7.7.2](./7_7_2/index.html)
+template: lucene/core/documentation
diff --git a/content/pages/core/downloads.md b/content/pages/core/downloads.md
index af02c24..47ebc41 100644
--- a/content/pages/core/downloads.md
+++ b/content/pages/core/downloads.md
@@ -1,41 +1,9 @@
 Title: Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> Downloads
-URL: core/
+URL: core/downloads.html
 save_as: core/downloads.html
-template: lucene-core/page
+template: lucene/core/downloads
 
-Official releases are usually created when the [developers](../whoweare.html) feel there are
-            sufficient changes, improvements and bug fixes to warrant a release.
-            Due to the voluntary nature of Lucene, no releases are scheduled in advance. System Requirements are detailed
-            [here](systemreqs.html).
-
-### Lucene 8.3.0
-
-Lucene 8.3.0 is the most recent Apache Lucene release.
-
- - Source release: [lucene-8.3.0-src.tgz](https://www.apache.org/dyn/closer.lua/lucene/java/8.3.0/lucene-8.3.0-src.tgz) [[PGP](https://www.apache.org/dist/lucene/java/8.3.0/lucene-8.3.0-src.tgz.asc)] [[SHA512](https://www.apache.org/dist/lucene/java/8.3.0/lucene-8.3.0-src.tgz.sha512)]
- - Binary releases:  [lucene-8.3.0.tgz](https://www.apache.org/dyn/closer.lua/lucene/java/8.3.0/lucene-8.3.0.tgz) [[PGP](https://www.apache.org/dist/lucene/java/8.3.0/lucene-8.3.0.tgz.asc)] [[SHA512](https://www.apache.org/dist/lucene/java/8.3.0/lucene-8.3.0.tgz.sha512)] / [lucene-8.3.0.zip](https://www.apache.org/dyn/closer.lua/lucene/java/8.3.0/lucene-8.3.0.zip) [[PGP](https://www.apache.org/dist/lucene/java/8.3.0/lucene-8.3.0.zip.asc)] [[SHA512](https://www.apache.org/dist/lucene/java [...]
- - [Change log](https://lucene.apache.org/core/8.3.0/changes/Changes.html)
-
-### Lucene 7.7.2
-
-Lucene 7.7.2 is the latest in the 7.x series.
-
- - Source release: [lucene-7.7.2-src.tgz](https://www.apache.org/dyn/closer.lua/lucene/java/7.7.2/lucene-7.7.2-src.tgz) [[PGP](https://www.apache.org/dist/lucene/java/7.7.2/lucene-7.7.2-src.tgz.asc)] [[SHA512](https://www.apache.org/dist/lucene/java/7.7.2/lucene-7.7.2-src.tgz.sha512)]
- - Binary releases:  [lucene-7.7.2.tgz](https://www.apache.org/dyn/closer.lua/lucene/java/7.7.2/lucene-7.7.2.tgz) [[PGP](https://www.apache.org/dist/lucene/java/7.7.2/lucene-7.7.2.tgz.asc)] [[SHA512](https://www.apache.org/dist/lucene/java/7.7.2/lucene-7.7.2.tgz.sha512)] / [lucene-7.7.2.zip](https://www.apache.org/dyn/closer.lua/lucene/java/7.7.2/lucene-7.7.2.zip) [[PGP](https://www.apache.org/dist/lucene/java/7.7.2/lucene-7.7.2.zip.asc)] [[SHA512](https://www.apache.org/dist/lucene/java [...]
- - [Change log](https://lucene.apache.org/core/7_7_2/changes/Changes.html)
-
-The above release files should be verified using the PGP signatures and the
-[project release KEYS](https://www.apache.org/dist/lucene/KEYS). See
-[verification instructions](https://www.apache.org/dyn/closer.cgi#verify) for a
-description of using the PGP and KEYS files for verification. SHA checksums
-are also provided as alternative verification method.
-
-### Older releases
-
-Archives for all past versions of Lucene are available at [the Apache archives](https://archive.apache.org/dist/lucene/java/).
-
-The <tt>lucene-VERSION.zip</tt> or <tt>.tar.gz</tt> (where VERSION is the version number of the release, e.g. 3.0.1) file contains the
-            lucene-core jar file, html documentation, a demo application (see the "Getting Started" section)
-            and various jar files containing contributed code.  The
-            <tt>lucene-VERSION-src.zip</tt> or <tt>.tar.gz</tt> contains the full source
-            code for that version.
+Official releases are usually created when the [developers]({filename}/pages/whoweare.md)
+feel there are sufficient changes, improvements and bug fixes to warrant a release.
+Due to the voluntary nature of Lucene, no releases are scheduled in advance.
+System Requirements are detailed [here]({filename}/pages/core/systemreqs.md).
diff --git a/content/pages/core/index.md b/content/pages/core/index.md
index 193e8c1..c97a8cb 100644
--- a/content/pages/core/index.md
+++ b/content/pages/core/index.md
@@ -1,26 +1,30 @@
 Title: Apache Lucene Core
-URL: core/
+URL: core/index.html
 save_as: core/index.html
 theme: lucene-core
-template: lucene-core/page
+template: lucene/core/page
 
-Apache Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
+Apache Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> is a
+high-performance, full-featured text search engine library written entirely in Java.
+It is a technology suitable for nearly any application that requires full-text search,
+especially cross-platform.
 
-Apache Lucene is an open source project available for free download. Please use the links on the right to access Lucene.
+Apache Lucene is an open source project available for free download. Please use the
+links on the right to access Lucene.
 
-#Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> Features
+# Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> Features
 
 Lucene offers powerful features through a simple API:
 
 
-##Scalable, High-Performance Indexing
+## Scalable, High-Performance Indexing
 
-- over <a href="http://home.apache.org/~mikemccand/lucenebench/indexing.html">150GB/hour on modern hardware</a>
+- over [150GB/hour on modern hardware][1]
 - small RAM requirements -- only 1MB heap
 - incremental indexing as fast as batch indexing
 - index size roughly 20-30% the size of text indexed
 
-##Powerful, Accurate and Efficient Search Algorithms
+## Powerful, Accurate and Efficient Search Algorithms
 
 - ranked searching -- best results returned first
 - many powerful query types: phrase queries, wildcard queries, proximity
@@ -31,15 +35,19 @@ Lucene offers powerful features through a simple API:
 - allows simultaneous update and searching
 - flexible faceting, highlighting, joins and result grouping
 - fast, memory-efficient and typo-tolerant suggesters
-- pluggable ranking models, including the <a href="http://en.wikipedia.org/wiki/Vector_Space_Model">Vector Space Model</a> and <a href="http://en.wikipedia.org/wiki/Okapi_BM25">Okapi BM25</a>
+- pluggable ranking models, including the [Vector Space Model][2] and [Okapi BM25][3]
 - configurable storage engine (codecs)
 
 
-##Cross-Platform Solution
+## Cross-Platform Solution
 
-- Available as Open Source software under the
-  <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License</a>
-  which lets you use Lucene in both commercial and Open Source programs
+- Available as Open Source software under the [Apache License][4] which lets you use
+  Lucene in both commercial and Open Source programs
 - 100%-pure Java
-- Implementations <a href="http://wiki.apache.org/lucene-java/LuceneImplementations">in other
-  programming languages available</a> that are index-compatible
+- Implementations [in other programming languages available][5] that are index-compatible
+
+[1]: http://home.apache.org/~mikemccand/lucenebench/indexing.html
+[2]: http://en.wikipedia.org/wiki/Vector_Space_Model
+[3]: http://en.wikipedia.org/wiki/Okapi_BM25
+[4]: http://www.apache.org/licenses/LICENSE-2.0.html
+[5]: http://wiki.apache.org/lucene-java/LuceneImplementations
diff --git a/content/pages/core/quickstart.md b/content/pages/core/quickstart.md
index 7a645b8..ff6ca81 100644
--- a/content/pages/core/quickstart.md
+++ b/content/pages/core/quickstart.md
@@ -1,12 +1,6 @@
 Title: Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> Tutorials
-URL: core/
+URL: core/quickstart.html
 save_as: core/quickstart.html
-template: lucene-core/page
+template: lucene/core/quickstart
 
-A copy of the demo for each version of Lucene is included
-in the documentation for that release.
-
-The most recent versions can also be found online:
-
-<!-- why doesn't include "/pages/latestversion.md"  work here? -->
-- <a href="8_3_0/demo/overview-summary.html#overview_description">Lucene 8.3.0 Demo</a>
+A copy of the demo for each version of Lucene is included in the documentation for that release.
diff --git a/content/pages/core/sidebar.md b/content/pages/core/sidebar.md
deleted file mode 100644
index 0e7c9d3..0000000
--- a/content/pages/core/sidebar.md
+++ /dev/null
@@ -1,56 +0,0 @@
-Title: Sidebar
-category: sidebar-core
-save_as:
-slug: sidebar-core
-
-<div class="button-wrapper">
-  <div class="button-green">
-    <a href="downloads.html">Download</a>
-    <div class="flap top">Click to</div>
-    <div class="flap bottom">Apache Lucene 8.3.0</div>
-  </div>
-  <div class="download-desc">Apache Lucene 8.3.0</div>
-</div>
-
-# Resources
-- [Mailing Lists](discussion.html)
-- [Developer](developer.html)
-- [Features](features.html)
-- [Releases](downloads.html)
-- [System Requirements](systemreqs.html)
-
-# Release Docs
-
-- [8.3.0](./8_3_0/index.html)
-
-# About
-- [License](https://www.apache.org/licenses/)
-- [Who We are](../whoweare.html)
-
-# Events
-
-- <a  href="https://www.apache.org/events/current-event.html" target="_blank"><img src="https://www.apache.org/events/current-event-125x125.png"/></a>
-
-# ASF links
-- [Apache Software Foundation](http://www.apache.org)
-- [Thanks](http://www.apache.org/foundation/thanks.html)
-- [Become a Sponsor](http://www.apache.org/foundation/sponsorship.html)
-- [Security](http://www.apache.org/security/)
-
-# Related Projects
-- [Apache Hadoop](http://hadoop.apache.org)
-- [Apache ManifoldCF](http://manifoldcf.apache.org/)
-- [Apache Lucene.Net](http://lucenenet.apache.org/)
-- [Apache Lucy](http://lucy.apache.org/)
-- [Apache Mahout](http://mahout.apache.org)
-- [Apache Nutch](http://nutch.apache.org)
-- [Apache OpenNLP](http://opennlp.apache.org/)
-- [Apache Tika](http://tika.apache.org)
-- [Apache Zookeeper](http://zookeeper.apache.org)
-
-
-<div class="status">
-  <!-- No SVN anymore; TODO: how to do Git? INFRA does not have a plugin!
-  <div id="svn"></div>
-  -->
-</div>
diff --git a/content/pages/core/systemreqs.md b/content/pages/core/systemreqs.md
index c7064c5..c69d72b 100644
--- a/content/pages/core/systemreqs.md
+++ b/content/pages/core/systemreqs.md
@@ -1,9 +1,4 @@
 Title: Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> System Requirements
-URL: core/
+URL: core/systemreqs.html
 save_as: core/systemreqs.html
-template: lucene-core/page
-
-The system requirements of the various Lucene releases are listed on their documentation pages:
-
-- [8.3.0](./8_3_0/SYSTEM_REQUIREMENTS.html)
-- [7.7.2](./7_7_2/SYSTEM_REQUIREMENTS.html)
+template: lucene/core/systemreqs
diff --git a/content/pages/index.md b/content/pages/index.md
index 4c855d0..80f52bc 100644
--- a/content/pages/index.md
+++ b/content/pages/index.md
@@ -1,7 +1,7 @@
 Title: Welcome to Apache Lucene
-URL:
+URL: index.html
 save_as: index.html
-Template: lucene-tlp/splash
+Template: lucene/tlp/index
 
 The Apache Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> project develops open-source search software, including:
 
diff --git a/content/pages/latestversion.md b/content/pages/latestversion.md
index fe28fd8..b4f3c05 100644
--- a/content/pages/latestversion.md
+++ b/content/pages/latestversion.md
@@ -1,6 +1,4 @@
 Title:
-URL:
+URL: latestversion.html
 save_as: latestversion.html
-template: lucene-tlp/page
-
-8.3.0
+template: lucene/tlp/latest_version
diff --git a/content/pages/mirrors-core-latest-redir.md b/content/pages/mirrors-core-latest-redir.md
index a6e50f8..0c06048 100644
--- a/content/pages/mirrors-core-latest-redir.md
+++ b/content/pages/mirrors-core-latest-redir.md
@@ -1,7 +1,7 @@
 Title:
-URL:
+URL: mirrors-core-latest-redir.html
 save_as: mirrors-core-latest-redir.html
-template: lucene-tlp/page
+template: lucene/tlp/page
 slug: mirrors-core-latest-redir
 
 You should be automatically redirected to the Apache Mirrors Site, if not please choose from the
diff --git a/content/pages/mirrors-core-redir.md b/content/pages/mirrors-core-redir.md
index e5af61b..514d13c 100644
--- a/content/pages/mirrors-core-redir.md
+++ b/content/pages/mirrors-core-redir.md
@@ -1,7 +1,7 @@
 Title:
-URL:
+URL: mirrors-core-redir.html
 save_as: mirrors-core-redir.html
-template: lucene-tlp/page
+template: lucene/tlp/page
 slug: mirrors-core-redir
 
 You should be automatically redirected to the Apache Mirrors Site, if not please choose from the
diff --git a/content/pages/news.md b/content/pages/news.md
index 8cf8dba..4823719 100644
--- a/content/pages/news.md
+++ b/content/pages/news.md
@@ -1,4 +1,4 @@
 Title: Lucene™ Project News
-URL:
+URL: news.html
 save_as: news.html
-template: lucene-tlp/news
+template: lucene/tlp/news
diff --git a/content/pages/openrelevance/index.md b/content/pages/openrelevance/index.md
index 813d0f4..27e291c 100644
--- a/content/pages/openrelevance/index.md
+++ b/content/pages/openrelevance/index.md
@@ -1,13 +1,16 @@
 Title: Welcome to the Open Relevance Project
-URL: openrelevance/
+URL: openrelevance/index.html
 save_as: openrelevance/index.html
-template: openrelevance/splash
+template: lucene/openrelevance/index
 
-The Open Relevance Project (ORP) was a small Apache Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> sub-project aimed at making materials for doing relevance testing
-for Information Retrieval (IR), Machine Learning and Natural Language Processing (NLP) into open source.
+The Open Relevance Project (ORP) was a small Apache
+Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> sub-project
+aimed at making materials for doing relevance testing for Information Retrieval (IR),
+Machine Learning and Natural Language Processing (NLP) into open source.
 
-Our initial focus was on creating collections, judgments, queries and tools for the Lucene ecosystem of
-projects (Lucene Java, Solr<span style="vertical-align: super; font-size: xx-small">TM</span>,
+Our initial focus was on creating collections, judgments, queries and tools for the
+Lucene ecosystem of projects (Lucene Java,
+Solr<span style="vertical-align: super; font-size: xx-small">TM</span>,
 Nutch<span style="vertical-align: super; font-size: xx-small">TM</span>,
 Mahout<span style="vertical-align: super; font-size: xx-small">TM</span>, etc.)
 that can be used to judge relevance in a free, repeatable manner.
diff --git a/content/pages/openrelevance/mailing-lists.md b/content/pages/openrelevance/mailing-lists.md
index 596a021..3d663dc 100644
--- a/content/pages/openrelevance/mailing-lists.md
+++ b/content/pages/openrelevance/mailing-lists.md
@@ -1,7 +1,7 @@
 Title: ORP Mailing Lists
-URL: openrelevance/
+URL: openrelevance/mailing-lists.html
 save_as: openrelevance/mailing-lists.html
-template: openrelevance/page
+template: lucene/openrelevance/page
 
 ## *User discussions:*
 
diff --git a/content/pages/openrelevance/sidebar.md b/content/pages/openrelevance/sidebar.md
deleted file mode 100644
index e3e9c66..0000000
--- a/content/pages/openrelevance/sidebar.md
+++ /dev/null
@@ -1,29 +0,0 @@
-Title: Sidebar
-category: sidebar-orp
-save_as:
-slug: sidebar-orp
-
-# About
-  - [License](https://www.apache.org/licenses/)
-  - [Who We are](../whoweare.html)
-
-# Events
-
-  - <a  href="https://www.apache.org/events/current-event.html" target="_blank"><img src="https://www.apache.org/events/current-event-125x125.png"/></a>
-
-# ASF links
-  - [Apache Software Foundation](http://www.apache.org)
-  - [Thanks](http://www.apache.org/foundation/thanks.html)
-  - [Become a Sponsor](http://www.apache.org/foundation/sponsorship.html)
-  - [Security](http://www.apache.org/security/)
-
-# Related Projects
-  - [Apache Hadoop](http://hadoop.apache.org)
-  - [Apache ManifoldCF](http://manifoldcf.apache.org/)
-  - [Apache Lucene.Net](http://lucenenet.apache.org/)
-  - [Apache Lucy](http://lucy.apache.org/)
-  - [Apache Mahout](http://mahout.apache.org)
-  - [Apache Nutch](http://nutch.apache.org)
-  - [Apache OpenNLP](http://opennlp.apache.org/)
-  - [Apache Tika](http://tika.apache.org)
-  - [Apache Zookeeper](http://zookeeper.apache.org)
diff --git a/content/pages/privacy.md b/content/pages/privacy.md
index 70f8ee5..927d612 100644
--- a/content/pages/privacy.md
+++ b/content/pages/privacy.md
@@ -1,7 +1,7 @@
 Title: Privacy Policy
-URL:
+URL: privacy.html
 save_as: privacy.html
-template: lucene-tlp/page
+template: lucene/tlp/page
 
 Information about your use of this website is collected using server access logs and a tracking cookie. The collected information consists of the following:
 
diff --git a/content/pages/pylucene/features.md b/content/pages/pylucene/features.md
index fcdce54..fcf1e91 100644
--- a/content/pages/pylucene/features.md
+++ b/content/pages/pylucene/features.md
@@ -1,262 +1,213 @@
 Title: Features
-URL: pylucene/
+URL: pylucene/features.html
 save_as: pylucene/features.html
-template: pylucene/page
+template: lucene/pylucene/page
 slug: pylucene-features
 
 ## Warning
 
 Before calling any PyLucene API that requires the Java VM, start it by
-calling <i>initVM(classpath, ...)</i>.
-More about this function in <a href="jcc/features.html">here</a>.
+calling _initVM(classpath, ...)_. More about this function in [here](jcc/features.html).
 
-##Installing PyLucene
-
-PyLucene is a Python extension built with
-<a href="jcc/">JCC</a>.
+## Installing PyLucene
 
+PyLucene is a Python extension built with [JCC](jcc/).
 
 To build PyLucene, JCC needs to be built first. Sources for JCC are
 included with the PyLucene sources. Instructions for building and
-installing JCC are <a href="jcc/install.html">here</a>.
-
-
-Instruction for building PyLucene
-are <a href="install.html">here</a>.
+installing JCC are [here](jcc/install.html).
 
+Instruction for building PyLuceneare [here](install.html).
 
+## API documentation
 
-##API documentation
+PyLucene is closely tracking Java
+Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> releases.
+It intends to supports the entire Lucene API.
 
-PyLucene is closely tracking Java Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> releases. It intends to
-supports the entire Lucene API.
-
-
-PyLucene also includes a number of Lucene contrib packages: the
-Snowball analyzer and stemmers, the highlighter package, analyzers
-for other languages than english, regular expression queries,
-specialized queries such as 'more like this' and more.
 
+PyLucene also includes a number of Lucene contrib packages: the Snowball analyzer
+and stemmers, the highlighter package, analyzers for other languages than English,
+regular expression queries, specialized queries such as 'more like this' and more.
 
 This document only covers the pythonic extensions to Lucene offered
 by PyLucene as well as some differences between the Java and Python
 APIs. For the documentation on Java Lucene APIs,
-see <a href="https://lucene.apache.org/java/docs/api/index.html">here</a>.
-
+see [here](https://lucene.apache.org/java/docs/api/index.html).
 
 To help with debugging and to support some Lucene APIs, PyLucene also
 exposes some Java runtime APIs.
 
+## Samples
 
-##Samples
-
-The best way to learn PyLucene is to look at the samples and tests
-included with the PyLucene source release or on the web at:
-
-
-- <a href="https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/samples">https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/samples</a>
-
-- <a href="https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/test">https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/test</a>
-
-
+The best way to learn PyLucene is to look at the samples and tests included with
+the PyLucene source release or on the web at:
 
-##Threading support with attachCurrentThread
+- [https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/samples](https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/samples)
+- [https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/test](https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/test)
 
-Before PyLucene APIs can be used from a thread other than the main
-thread that was not created by the Java Runtime, the
-<i>attachCurrentThread()</i> method must be called on the
-<i>JCCEnv</i> object returned by the <i>initVM()</i>
-or <i>getVMEnv()</i> functions.
+## Threading support with attachCurrentThread
 
+Before PyLucene APIs can be used from a thread other than the main thread that was
+not created by the Java Runtime, the _attachCurrentThread()_ method must be
+called on the _JCCEnv_ object returned by the _initVM()_ or _getVMEnv()_ functions.
 
+## Exception handling with lucene.JavaError
 
-##Exception handling with lucene.JavaError
+Java exceptions are caught at the language barrier and reported to Python by raising
+a JavaError instance whose args tuple contains the actual Java Exception instance.
 
-Java exceptions are caught at the language barrier and reported to
-Python by raising a JavaError instance whose args tuple contains the
-actual Java Exception instance.
+## Handling Java arrays
 
+Java arrays are returned to Python in a _JArray_ wrapper instance that
+implements the Python sequence protocol. It is possible to change array elements
+but not to change the array size.
 
+A few Lucene APIs take array arguments and expect values to be returned in them.
+To call such an API and be able to retrieve the array values after the call, a
+Java array needs to instantiated first.<br/> For example, accessing termDocs:
 
-##Handling Java arrays
-
-Java arrays are returned to Python in a <i>JArray</i>
-wrapper instance that implements the Python sequence protocol. It
-is possible to change array elements but not to change the array
-size.
-
-
-A few Lucene APIs take array arguments and expect values to be
-returned in them. To call such an API and be able to retrieve the
-array values after the call, a Java array needs to instantiated
-first.<br/>
-For example, accessing termDocs:
-
-<code>
+```
 termDocs = reader.termDocs(Term("isbn", isbn))<br/>
 docs = JArray('int')(1)   # allocate an int[1] array<br/>
 freq = JArray('int')(1)   # allocate an int[1] array<br/>
 if termDocs.read(docs, freq) == 1:<br/>
 &nbsp;&nbsp;bits.set(docs[0])     # access the array's first element<br/>
-</code>
-
-In addition to <i>int</i>, the <i>JArray</i>
-function accepts <i>object</i>, <i>string</i>,
-<i>bool</i>, <i>byte</i>, <i>char</i>,
-<i>double</i>, <i>float</i>, <i>long</i>
-and <i>short</i> to create an array of the corresponding
-type. The <i>JArray('object')</i> constructor takes a second
-argument denoting the class of the object elements. This argument
-is optional and defaults to Object.
-
+```
+In addition to _int_, the _JArray_ function accepts _object_, _string_,
+_bool_, _byte_, _char_, _double_, _float_, _long_ and _short_ to create an array
+of the corresponding type. The _JArray('object')_ constructor takes a second
+argument denoting the class of the object elements. This argument is optional and
+defaults to Object.
 
-To convert a char array to a Python string use a
-<i>''.join(array)</i> construct.
+To convert a char array to a Python string use a _''.join(array)_ construct.
 
-
-Instead of an integer denoting the size of the desired Java array,
-a sequence of objects of the expected element type may be passed
-in to the array constructor.<br/>
+Instead of an integer denoting the size of the desired Java array, a sequence of
+objects of the expected element type may be passed in to the array constructor.<br/>
 For example:
 
-<code>
+```
 \# creating a Java array of double from the [1.5, 2.5] list<br/>
 JArray('double')([1.5, 2.5])<br/>
-</code>
-
-All methods that expect an array also accept a sequence of Python
-objects of the expected element type. If no values are expected
-from the array arguments after the call, it is hence not necessary
-to instantiate a Java array to make such calls.
-
-
-See <a href="jcc/features.html">JCC</a> for more
-information about handling arrays.
-
-
+```
+All methods that expect an array also accept a sequence of Python objects of the
+expected element type. If no values are expected from the array arguments after
+the call, it is hence not necessary to instantiate a Java array to make such calls.
 
-##Differences between the Java Lucene and PyLucene APIs
+See [JCC](jcc/features.html) for more information about handling arrays.
 
-- The PyLucene API exposes all Java Lucene classes in a flat namespace
-in the PyLucene module. For example, the Java import
-statement <code>import
-org.apache.lucene.index.IndexReader;</code> corresponds to the
-Python import statement <code>from lucene import
-IndexReader</code>
+## Differences between the Java Lucene and PyLucene APIs
 
-- Downcasting is a common operation in Java but not a concept in
-Python. Because the wrapper objects implementing exactly the
-APIs of the declared type of the wrapped object, all classes
-implement two class methods called instance_ and cast_ that
-verify and cast an instance respectively.
+- The PyLucene API exposes all Java Lucene classes in a flat namespace in the
+PyLucene module. For example, the Java import statement
+`import org.apache.lucene.index.IndexReader;` corresponds to the Python import
+statement `from lucene import IndexReader`
 
+- Downcasting is a common operation in Java but not a concept in Python. Because
+the wrapper objects implementing exactly the APIs of the declared type of the
+wrapped object, all classes implement two class methods called instance_ and
+cast_ that verify and cast an instance respectively.
 
+## Phythonic extensions to the Java Lucene APIs
 
+Java is a very verbose language. Python, on the other hand, offers many
+syntactically attractive constructs for iteration, property access, etc... As
+the Java Lucene samples from the _Lucene in Action_ book were ported to Python,
+PyLucene received a number of pythonic extensions listed here:
 
-##Pythonic extensions to the Java Lucene APIs
-
-Java is a very verbose language. Python, on the other hand, offers
-many syntactically attractive constructs for iteration, property
-access, etc... As the Java Lucene samples from the <em>Lucene in
-Action</em> book were ported to Python, PyLucene received a number
-of pythonic extensions listed here:
-
-
-- Iterating search hits is a very common operation. Hits instances
-are iterable in Python. Two values are returned for each
-iteration, the zero-based number of the document in the Hits
-instance and the document instance itself.<br/>
+- Iterating search hits is a very common operation. Hits instances are iterable
+in Python. Two values are returned for each iteration, the zero-based number of
+the document in the Hits instance and the document instance itself.<br/>
 The Java loop:
-<code>
+```
 for (int i = 0; i &lt; hits.length(); i++) {<br/>
 &nbsp;&nbsp;Document doc = hits.doc(i);<br/>
 &nbsp;&nbsp;System.out.println(hits.score(i) + " : " + doc.get("title"));<br/>
 }<br/>
-</code>
+```
+
 can be written in Python:
-<code>
+
+```
 for hit in hits:<br/>
 &nbsp;&nbsp;hit = Hit.cast_(hit)<br/>
 &nbsp;&nbsp;print hit.getScore(), ':', hit.getDocument['title']<br/>
-</code>
-if hit.iterator()'s next() method were declared to return
-<i>Hit</i> instead of <i>Object</i>, the above
-cast_() call would not be unnecessary.<br/>
-The same java loop can also be written:
-<code>
+```
+
+if hit.iterator()'s next() method were declared to return _Hit_ instead of
+_Object_, the above cast_() call would not be unnecessary.<br/> The same java
+loop can also be written:
+
+```
 for i xrange(len(hits)):<br/>
 &nbsp;&nbsp;print hits.score(i), ':', hits[i]['title']<br/>
-</code>
+```
 
-- Hits instances partially implement the Python 'sequence'
-protocol.<br/>
+- Hits instances partially implement the Python 'sequence' protocol.<br/>
 The Java expressions:
-<code>
+
+```
 hits.length();<br/>
 doc = hits.get(i);<br/>
-</code>
+```
+
 are better written in Python:
-<code>
+
+```
 len(hits)<br/>
 doc = hits[i]<br/>
-</code>
+```
+
+- Document instances have fields whose values can be accessed through the mapping
+protocol.<br/> The Java expression:
 
-- Document instances have fields whose values can be accessed
-through the mapping protocol.<br/>
-The Java expression:
-<code>
+```
 doc.get("title")
-</code>
+```
+
 is better written in Python:
-<code>
+
+```
 doc['title']
-</code>
+```
 
-- Document instances can be iterated over for their fields.<br/>
-The Java loop:
-<code>
+- Document instances can be iterated over for their fields.<br/> The Java loop:
+
+```
 Enumeration fields = doc.getFields();<br/>
 while (fields.hasMoreElements()) {<br/>
 &nbsp;&nbsp;Field field = (Field) fields.nextElement();<br/>
 &nbsp;&nbsp;...<br/>
 }<br/>
-</code>
+```
+
 is better written in Python:
-<code>
+
+```
 for field in doc.getFields():<br/>
 &nbsp;&nbsp;field = Field.cast_(field)<br/>
 &nbsp;&nbsp;...<br/>
-</code>
-Once JCC heeds Java 1.5 type parameters and once Java Lucene
-makes use of them, such casting should become unncessary.
-
+```
 
+Once JCC heeds Java 1.5 type parameters and once Java Lucene makes use of them,
+such casting should become unnecessary
 
+## Extending Java Lucene classes from Python
 
-##Extending Java Lucene classes from Python
-
-Many areas of the Lucene API expect the programmer to provide
-their own implementation or specialization of a feature where
-the default is inappropriate. For example, text analyzers and
-tokenizers are an area where many parameters and environmental
+Many areas of the Lucene API expect the programmer to provide their own implementation
+or specialization of a feature where the default is inappropriate. For example,
+text analyzers and tokenizers are an area where many parameters and environmental
 or cultural factors are calling for customization.
 
+PyLucene enables this by providing Java extension points listed below that serve
+s proxies for Java to call back into the Python implementations of these customizations.
 
-PyLucene enables this by providing Java extension points listed
-below that serve as proxies for Java to call back into the
-Python implementations of these customizations.
-
-
-These extension points are simple Java classes that JCC
-generates the native C++ implementations for. It is easy to add
-more such extensions classes into the 'java' directory of the
-PyLucene source tree.
-
-
-To learn more about this topic, please refer to the JCC
-<a href="jcc/features.html">documentation</a>.
+These extension points are simple Java classes that JCC generates the native C++
+implementations for. It is easy to add more such extensions classes into the
+'java' directory of the PyLucene source tree.
 
+To learn more about this topic, please refer to the JCC [documentation](jcc/features.html).
 
-Please refer to the classes in the 'java' tree for currently
-available extension points. Examples of uses of these extension
-points are to be found in PyLucene's unit tests.
+Please refer to the classes in the 'java' tree for currently available extension
+points. Examples of uses of these extension points are to be found in PyLucene's
+unit tests.
diff --git a/content/pages/pylucene/index.md b/content/pages/pylucene/index.md
index 4f1715d..0bb2348 100644
--- a/content/pages/pylucene/index.md
+++ b/content/pages/pylucene/index.md
@@ -1,50 +1,39 @@
 Title: Welcome to PyLucene
-URL: pylucene/
+URL: pylucene/index.html
 save_as: pylucene/index.html
-template: pylucene/splash
+template: lucene/pylucene/index
 
-##What is PyLucene ?
+## What is PyLucene ?
 
-PyLucene is a <a href="https://www.python.org">Python</a> extension
-for accessing
-Java <a href="https://lucene.apache.org/java/">Lucene</a><span style="vertical-align: super; font-size: xx-small">TM</span>. Its goal
-is to allow you to use Lucene's text indexing and searching
-capabilities from Python. It is API compatible with the latest
-version of Java Lucene, version 8.1.1 as of September 11th, 2019.
+PyLucene is a [Python](https://www.python.org) extension for accessing Java
+[Lucene](https://lucene.apache.org/java/)
+<span style="vertical-align: super; font-size: xx-small">TM</span>. Its goal
+is to allow you to use Lucene's text indexing and searching capabilities from
+Python. It is API compatible with the latest version of Java Lucene, version
+8.1.1 as of September 11th, 2019.
 
+PyLucene is not a Lucene port but a Python wrapper around Java Lucene. PyLucene
+embeds a Java VM with Lucene into a Python process. The PyLucene Python extension,
+a Python module called **lucene** is machine-generated by JCC.
 
-PyLucene is not a Lucene port but a Python wrapper around
-Java Lucene. PyLucene embeds a Java VM with Lucene into a Python
-process. The PyLucene Python extension, a Python module called
-<b>lucene</b> is machine-generated by JCC.
+PyLucene is built with [JCC](jcc/index.html), a C++ code generator that makes it
+possible to call into Java classes from Python via Java's Native Invocation
+Interface (JNI). Sources for JCC are included with the PyLucene sources.
 
+See [here](features.html) for more information and documentation about PyLucene.
 
-PyLucene is built with [JCC](jcc/index.html), a C++
-code generator that makes it possible to call into Java classes from
-Python via Java's Native Invocation Interface (JNI). Sources for JCC
-are included with the PyLucene sources.
-
-
-See <a href="features.html">here</a> for more
-information and documentation about PyLucene.
-
-##Requirements
+## Requirements
 
 PyLucene is supported on macOS, Linux, Solaris and Windows.
 
+PyLucene requires Python version 2.x (x >= 3.5) or Python 3.x (x >= 3) and Java
+version 1.8. Building PyLucene requires GNU Make, a recent version of
+[Ant](https://ant.apache.org) capable of building Java
+[Lucene](https://lucene.apache.org/java/) and a C++ compiler. Use of
+[setuptools](https://pypi.python.org/pypi/setuptools) is recommended.
 
-PyLucene requires Python version 2.x (x >= 3.5) or Python 3.x (x >= 3)
-and Java version 1.8. Building PyLucene requires GNU Make, a recent version
-of <a href="https://ant.apache.org">Ant</a> capable of building
-Java <a href="https://lucene.apache.org/java/">Lucene</a> and a C++
-compiler. Use
-of <a href="https://pypi.python.org/pypi/setuptools">setuptools</a>
-is recommended.
-
-See the JCC <a href="jcc/install.html">installation
-instructions</a> for more information about building JCC from sources.
-
+See the JCC [installation](jcc/install.html) instructions for more information
+about building JCC from sources.
 
-See the PyLucene <a href="install.html">installation
-instructions</a> for more information about building PyLucene from
-sources.
+See the PyLucene [installation instructions](install.html) for more information
+about building PyLucene from sources.
diff --git a/content/pages/pylucene/install.md b/content/pages/pylucene/install.md
index 8c6c47e..354f3f9 100644
--- a/content/pages/pylucene/install.md
+++ b/content/pages/pylucene/install.md
@@ -1,116 +1,94 @@
 Title: Building PyLucene
-URL: pylucene/
+URL: pylucene/install.html
 save_as: pylucene/install.html
-template: pylucene/page
+template: lucene/pylucene/page
 
-##Building PyLucene
+## Building PyLucene
 
-PyLucene is completely code-generated by JCC whose sources are
-included with the PyLucene sources.<br/>
+PyLucene is completely code-generated by JCC whose sources are included with the
+PyLucene sources.
 
+## Requirements
 
-##Requirements
+To build PyLucene a Java Development Kit (JDK) and [Ant](https://ant.apache.org)
+are required; use of the resulting PyLucene binaries requires only a Java Runtime
+Environment (JRE).
 
-To build PyLucene a Java Development Kit (JDK)
-and <a href="https://ant.apache.org">Ant</a> are required; use of the
-resulting PyLucene binaries requires only a Java Runtime Environment
-(JRE).
-
-<b>Attention:</b> Starting with release 6.x, Lucene requires Java 1.8.
+**Attention:** Starting with release 6.x, Lucene requires Java 1.8.
 
 On macOS, you will need to install Oracle Java 8, and due to a
 [bug](https://bugs.openjdk.java.net/browse/JDK-7131356) in the JDK for macOS,
 you will **also** need to install Apple's Java 1.6.
 
-On macOS, once installed, a way to make Java 1.8 the default in your bash
-shell is:<br/>
- <code>  $ export JAVA_HOME=\`/usr/libexec/java_home\`</code>
+On macOS, once installed, a way to make Java 1.8 the default in your bash shell is:<br/>
+```
+$ export JAVA_HOME=\`/usr/libexec/java_home\`
+```
 Be sure to verify that JAVA_HOME value.
 
 On any system, if you're upgrading your Java installation, please rebuild
 JCC as well. You must use the same version of Java for both JCC and PyLucene.
 
-
 A modern version of setuptools is required for building JCC in shared mode.
-See JCC's <a href="jcc/install.html">installation instructions</a> for more
-information.
-
-
-##For the Impatient Ones
-
-- <b>pushd jcc</b>
-- <i>&lt;edit _setup.py_ to match your environment&gt;</i>
-- <b>python setup.py build</b>
-- <b>sudo python setup.py install</b>
-- <b>popd</b>
-- <i>&lt;edit _Makefile_ to match your environment&gt;</i>
-- <b>make</b>
-- <b>make test</b> (look for failures)
-- <b>sudo make install</b>
+See JCC's [installation instructions](jcc/install.html) for more information.
 
+## For the Impatient Ones
 
-##For the Rest of Us
+- **pushd jcc**
+- _<edit _setup.py_ to match your environment>;_
+- **python setup.py build**
+- **sudo python setup.py install**
+- **popd**
+- _<edit _Makefile_ to match your environment>_
+- **make**
+- **make test** (look for failures)
+- **sudo make install**
 
-Before building PyLucene, JCC must be
-built first. See
-JCC's <a href="jcc/install.html">installation
-instructions</a> for building and installing it.
+## For the Rest of Us
 
-Once JCC is built and installed, PyLucene is built
-via <i>make</i> which invokes JCC. See PyLucene's
-<i>Makefile</i> for configuration instructions.
+Before building PyLucene, JCC must be built first. See JCC's
+[installation instructions](jcc/install.html) for building and installing it.
 
-There are limits to both how many files can fit on the command
-line and how large a C++ file the C++ compiler can handle.
-By default, JCC generates one large C++ file containing the source
-code for all wrapper classes.
+Once JCC is built and installed, PyLucene is built via _make_ which invokes JCC.
+See PyLucene's _Makefile_ for configuration instructions.
 
-Using the --files command line argument, this behaviour can be
-tuned to workaround various limits, for example:
+There are limits to both how many files can fit on the command line and how large
+a C++ file the C++ compiler can handle. By default, JCC generates one large C++
+file containing the source code for all wrapper classes.
 
+Using the --files command line argument, this behaviour can be tuned to workaround
+various limits, for example:
 
-- to break up the large wrapper class file into about 2 files:<br/>
-<code>--files 2</code>
+- to break up the large wrapper class file into about 2 files:<br/>`--files 2`
+- to break up the large wrapper class file into about 10 files:<br/>`--files 10`
+- to generate one C++ file per Java class wrapped:<br/>`--files separate`
 
-- to break up the large wrapper class file into about 10 files:<br/>
-<code>--files 10</code>
+## Notes for Solaris 11 with Sun Studio C++ 12
 
-- to generate one C++ file per Java class wrapped:<br/>
-<code>--files separate</code>
+PyLucene's Makefile is a GNU Makefile. Be sure to use _gmake_ instead of plain _make_.
 
+Just as when building JCC, Python's distutils must be nudged a bit to invoke the
+correct compiler. Sun Studio's C compiler is called _cc_ while its C++ compiler is
+called _CC_.
 
-##Notes for Solaris 11 with Sun Studio C++ 12
+To build PyLucene, use the following shell command to ensure that the C++ compiler
+is used:<br/>`$ CC=CC gmake`
 
-PyLucene's Makefile is a GNU Makefile. Be sure to
-use <i>gmake</i> instead of plain <i>make</i>.
+## Notes for Solaris 11.1 with GCC 4.5
 
+PyLucene's Makefile is a GNU Makefile. Be sure to use gmake instead of plain make.
 
-Just as when building JCC, Python's distutils must be nudged a bit to
-invoke the correct compiler. Sun Studio's C compiler is
-called <i>cc</i> while its C++ compiler is
-called <i>CC</i>.<br/>
+- Edit Makefile and do the following changes: Insert and enable a Solaris-Section
+with the following content
 
-To build PyLucene, use the following shell command to ensure that
-the C++ compiler is used:<br/>
-<code>
-$ CC=CC gmake
-</code>
-
-
-##Notes for Solaris 11.1 with GCC 4.5
-
-PyLucene's Makefile is a GNU Makefile. Be sure to use gmake instead of plain
-make.
-
-- Edit Makefile and do the following changes:
-Insert and enable a Solaris-Section with the following content
-<pre><code>
+```
 \# Solaris   (Solaris 11.1, Python 2.6, 32-bit, Java 1.7)
 PREFIX_PYTHON=/usr
 ANT=/usr/bin/ant
 PYTHON=$(PREFIX_PYTHON)/bin/python
 JCC=$(PYTHON) -m jcc.\_\_main\_\_ --reserved DEFAULT_TYPE
 NUM_FILES=4
-</code></pre>
+```
+
 - gmake
 - su gmake install
diff --git a/content/pages/pylucene/jcc/features.md b/content/pages/pylucene/jcc/features.md
index 063f08e..9a97a0c 100644
--- a/content/pages/pylucene/jcc/features.md
+++ b/content/pages/pylucene/jcc/features.md
@@ -1,99 +1,75 @@
 Title: Features
-URL: pylucene/jcc/
+URL: pylucene/jcc/features.html
 save_as: pylucene/jcc/features.html
-template: pylucene-jcc/page
+template: lucene/pylucene/jcc/page
 slug: pylucene-jcc-features
 
 ## Warning
-*Before calling any PyLucene API that requires the Java VM, start it by
-calling <i>initVM(classpath, ...)</i>. More about this function
-in <a href="#api">here</a>.*
+*Before calling any PyLucene API that requires the Java VM, start it by calling
+_initVM(classpath, ...)_. More about this function in [here](#api).*
 
-##Installing JCC
+## Installing JCC
 
-JCC is a Python extension written in Python and C++. It requires a
-Java Runtime Environment (JRE) to operate as it uses Java's
-reflection APIs to do its work. It is built and installed
-via <i>distutils</i> or <i>setuptools</i>.
+JCC is a Python extension written in Python and C++. It requires a Java Runtime
+Environment (JRE) to operate as it uses Java's reflection APIs to do its work.
+It is built and installed via _distutils_ or _setuptools_.
 
+See [installation](install.html) for more information and operating system
+specific notes.
 
-See <a href="install.html">installation</a> for more
-information and operating system specific notes.
+## Invoking JCC
 
-##Invoking JCC
+JCC is installed as a package and how to invoke it depends on the Python version
+used:
 
-JCC is installed as a package and how to invoke it depends on the
-Python version used:
-
-
-- python 3.6: <b>python -m jcc</b>
-- python 2.7: <b>python -m jcc</b>
-- python 2.6: <b>python -m jcc.\_\_main\_\_</b>
-- python 2.5: <b>python -m jcc</b>
+- python 3.6: **python -m jcc**
+- python 2.7: **python -m jcc**
+- python 2.6: **python -m jcc.\_\_main\_\_**
+- python 2.5: **python -m jcc**
 - python 2.4:
-    - no setuptools: <b>python <i>site-packages</i>/jcc/\_\_init\_\_.py</b>
-    - with setuptools: <b>python <i>site-packages</i>/<i>jcc egg directory</i>/jcc/\_\_init\_\_.py</b>
-- python 2.3: <b>python <i>site-packages</i>/<i>jcc egg directory</i>/jcc/\_\_init\_\_.py</b>
-
-##Generating C++ and Python wrappers with JCC
-
-JCC started as a C++ code generator for hiding the gory details of
-accessing methods and fields on Java classes via
-Java's <a href="https://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/invocation.html">Native Invocation Interface</a>.
-These C++ wrappers make it possible to access a Java object as if it
-was a regular C++ object.
+    - no setuptools: **python _site-packages_/jcc/\_\_init\_\_.py**
+    - with setuptools: **python _site-packages_/_jcc egg directory_/jcc/\_\_init\_\_.py**
+- python 2.3: **python _site-packages_/_jcc egg directory_/jcc/\_\_init\_\_.py**
 
+## Generating C++ and Python wrappers with JCC
 
-It then became apparent that JCC could also generate the C++
-wrappers for making these classes available to Python. Every class
-that gets thus wrapped becomes a
-<a href="https://docs.python.org/2/extending/newtypes.html">CPython
-type</a>.
+JCC started as a C++ code generator for hiding the gory details of accessing
+methods and fields on Java classes via Java's
+[Native Invocation Interface](https://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/invocation.html).
+These C++ wrappers make it possible to access a Java object as if it was a regular
+C++ object.
 
+It then became apparent that JCC could also generate the C++ wrappers for making
+these classes available to Python. Every class that gets thus wrapped becomes a
+[CPython type](https://docs.python.org/2/extending/newtypes.html).
 
-JCC generates wrappers for all public classes that are requested by
-name on the command line or via the <i>--jar</i> command line
-argument. It generates wrapper methods for all public methods and
-fields on these classes whose return type and parameter types are
-found in one of the following ways:
-
+JCC generates wrappers for all public classes that are requested by name on the
+command line or via the _--jar_ command line argument. It generates wrapper methods
+for all public methods and fields on these classes whose return type and parameter
+types are found in one of the following ways:
 
 - the type is one of the requested classes
+- the type is one of the requested classes' superclass or implemented interfaces
+- the type is available from one of the packages listed via the _--package_ command
+  line argument
 
-- the type is one of the requested classes' superclass or implemented
-interfaces
-
-- the type is available from one of the packages listed via the
-<i>--package</i> command line argument
-
-
+Overloaded methods are supported and are selected at runtime on the basis of the
+type and number of arguments passed in.
 
-Overloaded methods are supported and are selected at runtime on the
-basis of the type and number of arguments passed in.
+JCC does not generate wrappers for methods or fields which don't satisfy these
+requirements. Thus, JCC can avoid generating code for runaway transitive closures
+of type dependencies.
 
+JCC generates property accessors for a property called _field_ when it finds Java
+methods named _setField(value)_, _getField()_ or _isField()_.
 
-JCC does not generate wrappers for methods or fields which don't
-satisfy these requirements. Thus, JCC can avoid generating code for
-runaway transitive closures of type dependencies.
+The C++ wrappers are declared in a C++ namespace structure that mirrors the Java
+classes' Java packages. The Python types are declared in a flat namespace at the
+top level of the resulting Python extension module.
 
+JCC's command-line arguments are best illustrated via the PyLucene example:
 
-JCC generates property accessors for a property
-called <i>field</i> when it finds Java methods
-named <i>setField(value)</i>,
-<i>getField()</i> or
-<i>isField()</i>.
-
-
-The C++ wrappers are declared in a C++ namespace structure that
-mirrors the Java classes' Java packages. The Python types are
-declared in a flat namespace at the top level of the resulting
-Python extension module.
-
-
-JCC's command-line arguments are best illustrated via the PyLucene
-example:
-
-<pre><code>
+```
 $ python -m jcc           # run JCC to wrap
     --jar lucene.jar      # all public classes in the lucene jar file
     --jar analyzers.jar   # and the lucene analyzers contrib package
@@ -161,187 +137,141 @@ $ python -m jcc           # run JCC to wrap
                           # copying the collections.py module into the egg
     --install             # installing it into Python's site-packages
                           # directory.
-</code></pre>
-
-There are limits to both how many files can fit on the command line
-and how large a C++ file the C++ compiler can handle. By default,
-JCC generates one large C++ file containing the source code for all
-wrapper classes.
-
+```
 
-Using the <i>--files</i> command line argument, this behaviour
-can be tuned to workaround various limits:<br/>
-for example:
+There are limits to both how many files can fit on the command line and how large
+a C++ file the C++ compiler can handle. By default, JCC generates one large C++
+file containing the source code for all wrapper classes.
 
+Using the _--files_ command line argument, this behaviour can be tuned to
+workaround various limits:<br/> for example:
 
-- to break up the large wrapper class file into about 2 files:<br/>
-<code>--files 2</code>
+- to break up the large wrapper class file into about 2 files:<br/>`--files 2`
+- to break up the large wrapper class file into about 10 files:<br/>`--files 10`
+- to generate one C++ file per Java class wrapped:<br/>`--files separate`
 
-- to break up the large wrapper class file into about 10 files:<br/>
-<code> --files 10</code>
+The _--prefix_ and _--root_ arguments are passed through to _distutils_' _setup()_.
 
-- to generate one C++ file per Java class wrapped:<br/>
-<code>--files separate</code>
+## Classpath considerations
 
+When generating wrappers for Python, the JAR files passed to JCC via _--jar_ are
+copied into the resulting Python extension egg as resources and added to the extension
+module's _CLASSPATH_ variable. Classes or JAR files that are required by the classes
+contained in the argument JAR files need to be made findable via JCC's _--classpath_
+command line argument. At runtime, these need to be appended to the extension's
+_CLASSPATH_ variable before starting the VM with _initVM(CLASSPATH)_.
 
-The <i>--prefix</i> and <i>--root</i> arguments are
-passed through to <i>distutils</i>' <i>setup()</i>.
+To have such required jar files also automatically copied into resulting Python
+extension egg and added to the classpath at build and runtime, use the _--include_
+option. This option works like the _--jar_ option except that no wrappers are
+generated for the classes contained in them unless they're explicitly named on
+the command line.
 
-##Classpath considerations
+When more than one JCC-built extension module is going to be used in the same
+Python VM and these extension modules share Java classes, only one extension module
+should be generated with wrappers for these shared classes. The other extension
+modules must be built by importing the one with the shared classes by using the
+_--import_ command line parameter. This ensures that only one copy of the
+wrappers for the shared classes are generated and that they are compatible among
+all extension modules sharing them.
 
-When generating wrappers for Python, the JAR files passed to JCC
-via <i>--jar</i> are copied into the resulting Python extension
-egg as resources and added to the extension
-module's <i>CLASSPATH</i> variable. Classes or JAR files that
-are required by the classes contained in the argument JAR files need
-to be made findable via JCC's <i>--classpath</i> command line
-argument. At runtime, these need to be appended to the
-extension's <i>CLASSPATH</i> variable before starting the VM
-with <i>initVM(CLASSPATH)</i>.
+## Using _distutils_ vs _setuptools_
 
+By default, when building a Python extension, if _setuptools_ is found to be
+installed, it is used over _distutils_. If you want to force the use of _distutils_
+over _setuptools_, use the _--use-distutils_ command line argument.
 
-To have such required jar files also automatically copied into
-resulting Python extension egg and added to the classpath at build
-and runtime, use the <i>--include</i> option. This option
-works like the <i>--jar</i> option except that no wrappers are
-generated for the classes contained in them unless they're
-explicitely named on the command line.
+## Distributing an egg
 
+The _--bdist_ option can be used to ask JCC to invoke _distutils_ with _bdist_
+or _setuptools_ with _bdist_egg_. If _setuptools_ is used, the resulting egg has
+to be installed with the [_easy_install_](https://peak.telecommunity.com/DevCenter/EasyInstall)
+installer which is normally part of a Python installation that includes _setuptools_.
 
-When more than one JCC-built extension module is going to be used in
-the same Python VM and these extension modules share Java classes,
-only one extension module should be generated with wrappers for these
-shared classes. The other extension modules must be built by importing
-the one with the shared classes by using the <i>--import</i>
-command line parameter. This ensures that only one copy of the
-wrappers for the shared classes are generated and that they are
-compatible among all extension modules sharing them.
+## JCC's runtime API functions
 
+JCC includes a small runtime component that is compiled into any Python extension
+it produces.
 
-##Using <i>distutils</i> vs <i>setuptools</i>
+This runtime component makes it possible to manage the Java VM from Python. Because
+a Java VM can be configured with a myriad of options, it is not automatically started
+when the resulting Python extension module is loaded into the Python interpreter.
 
-By default, when building a Python extension,
-if <i>setuptools</i> is found to be installed, it is used
-over <i>distutils</i>. If you want to force the use
-of <i>distutils</i> over <i>setuptools</i>, use
-the <i>--use-distutils</i> command line argument.
-
-
-##Distributing an egg
-
-The <i>--bdist</i> option can be used to ask JCC to
-invoke <i>distutils</i> with <i>bdist</i>
-or <i>setuptools</i>
-with <i>bdist_egg</i>. If <i>setuptools</i> is used,
-the resulting egg has to be installed with the
-<a href="https://peak.telecommunity.com/DevCenter/EasyInstall"><i>easy_install</i></a>
-installer which is normally part of a Python installation that
-includes <i>setuptools</i>.
-
-
-##JCC's runtime API functions
-
-JCC includes a small runtime component that is compiled into any
-Python extension it produces.
-
-
-This runtime component makes it possible to manage the Java VM from
-Python. Because a Java VM can be configured with a myriad of
-options, it is not automatically started when the resulting Python
-extension module is loaded into the Python interpreter.
-
-
-Instead, the <i>initVM()</i> function must be called from the
-main thread before using any of the wrapped classes. It takes the
-following keyword arguments:
+Instead, the _initVM()_ function must be called from the main thread before using
+any of the wrapped classes. It takes the following keyword arguments:
 
 -
-<i>classpath</i><br/>
-A string containing one or more directories or jar files for the
-Java VM to search for classes. Every Python extension produced by
-JCC exports a <i>CLASSPATH</i> variable that is hardcoded to
-the jar files that it was produced from. A copy of each jar file
-is installed as a resource file with the extension when JCC is
-invoked with the <i>--install</i> command line argument.
-This parameter is optional and defaults to the
-<i>CLASSPATH</i> string exported by the module
-<i>initVM</i> is imported from.
-<pre><code>
+_classpath_<br/>
+A string containing one or more directories or jar files for the Java VM to search
+for classes. Every Python extension produced by JCC exports a _CLASSPATH_ variable
+that is hardcoded to the jar files that it was produced from. A copy of each jar file
+is installed as a resource file with the extension when JCC is invoked with the
+_--install_ command line argument. This parameter is optional and defaults to the
+_CLASSPATH_ string exported by the module
+_initVM_ is imported from.
+```
     >>> import lucene
     >>> lucene.initVM(classpath=lucene.CLASSPATH)
-</code></pre>
+```
 
 -
-<i>initialheap</i><br/>
-The initial amount of Java heap to start the Java VM with. This
-argument is a string that follows the same syntax as the
-similar <i>-Xms</i> java command line argument.
-<pre><code>
+_initialheap_<br/>
+The initial amount of Java heap to start the Java VM with. This argument is a string
+that follows the same syntax as the similar _-Xms_ java command line argument.
+```
     >>> import lucene
     >>> lucene.initVM(initialheap='32m')
     >>> lucene.Runtime.getRuntime().totalMemory()
     33357824L
-</code></pre>
+```
 
 -
-<i>maxheap</i><br/>
-The maximum amount of Java heap that could become available to the
-Java VM. This argument is a string that follows the same syntax as
-the similar <i>-Xmx</i> java command line argument.
+_maxheap_<br/>
+The maximum amount of Java heap that could become available to the Java VM. This
+argument is a string that follows the same syntax as the similar _-Xmx_ java command
+line argument.
 
 -
-<i>maxstack</i><br/>
-The maximum amount of stack space that available to the Java
-VM. This argument is a string that follows the same syntax as the
-similar <i>-Xss</i> java command line argument.
+_maxstack_<br/>
+The maximum amount of stack space that available to the Java VM. This argument
+is a string that follows the same syntax as the similar _-Xss_ java command line
+argument.
 
 -
-<i>vmargs</i><br/>
-A string of comma separated additional options to pass to the VM
-startup rountine. These are passed through as-is. For example:
-<pre><code>
+_vmargs_<br/>
+A string of comma separated additional options to pass to the VM startup rountine.
+These are passed through as-is. For example:
+```
     >>> import lucene
     >>> lucene.initVM(vmargs='-Xcheck:jni,-verbose:jni,-verbose:gc')
-</code></pre>
-
-
-The <i>initVM()</i> and <i>getVMEnv()</i> functions
-return a JCCEnv object that has a few utility methods on it:
+```
 
+The _initVM()_ and _getVMEnv()_ functions return a JCCEnv object that has a few
+utility methods on it:
 
 -
-<i>attachCurrentThread(name, asDaemon)</i><br/>
-Before a thread created in Python or elsewhere but not in the Java
-VM can be used with the Java VM, this method needs to be
-invoked. The two arguments it takes are optional and
-self-explanatory.
+_attachCurrentThread(name, asDaemon)_<br/>Before a thread created in Python or
+elsewhere but not in the Java VM can be used with the Java VM, this method needs
+to be invoked. The two arguments it takes are optional and self-explanatory.
 
 -
-<i>detachCurrentThread()</i>
-The opposite of <i>attachCurrentThread()</i>. This method
-should be used with extreme caution as Python's and java VM's
-garbage collectors may use a thread detached too early causing a
-system crash. The utility of this method seems dubious at the
+_detachCurrentThread()_
+The opposite of _attachCurrentThread()_. This method should be used with extreme
+caution as Python's and java VM's garbage collectors may use a thread detached
+too early causing a system crash. The utility of this method seems dubious at the
 moment.
 
-
-
-There are several differences between JNI's <i>findClass()</i>
-and Java's <i>Class.forName()</i>:
-
+There are several differences between JNI's _findClass()_ and Java's _Class.forName()_:
 
 -
 className is a '/' separated string of names
 
 -
-the class loaders are different, <i>findClass()</i> may find
-classes that <i>Class.forName()</i> won't.
-
-
+the class loaders are different, _findClass()_ may find classes that _Class.forName()_ won't.
 
 For example:
 
-<pre><code>
+```
     >>> from lucene import *
     >>> initVM(CLASSPATH)
     >>> findClass('org/apache/lucene/document/Document')
@@ -352,63 +282,53 @@ For example:
     lucene.JavaError: java.lang.ClassNotFoundException: org/apache/lucene/document/Document
     &gt&gt&gt Class.forName('java.lang.Object')
     &lt;Class: class java.lang.Object&gt;
-</code></pre>
-
-##Type casting and instance checks
-
-Many Java APIs are declared to return types that are less specific
-than the types actually returned. In Java 1.5, this is worked around
-with type parameters. JCC generates code to heed type parameters
-unless the <i>--no-generics</i> is used. See next section for
-details on Java generics support.
+```
 
+## Type casting and instance checks
 
-In C++, casting the object into its actual type is supported via the
-regular C casting operator.
+Many Java APIs are declared to return types that are less specific than the types
+actually returned. In Java 1.5, this is worked around with type parameters. JCC
+generates code to heed type parameters unless the _--no-generics_ is used. See
+next section for details on Java generics support.
 
+In C++, casting the object into its actual type is supported via the regular C
+casting operator.
 
-In Python each wrapped class has a class method
-called <i>cast_</i> that implements the same functionality.
+In Python each wrapped class has a class method called _cast__ that implements
+the same functionality.
 
+Similarly, each wrapped class has a class method called _instance__ that tests
+whether the wrapped java instance is of the given type. For example:
 
-Similarly, each wrapped class has a class method
-called <i>instance_</i> that tests whether the wrapped java
-instance is of the given type. For example:
-
-<pre><code>
+```
     if BooleanQuery.instance_(query):
         booleanQuery = BooleanQuery.cast_(query)
 
     print booleanQuery.getClauses()
-</code></pre>
-
-##Handling generic classes
+```
 
-Java 1.5 added support for parameterized types. JCC generates code
-to heed type parameters unless the <i>--no-generics</i>
-command line parameter is used. Java type parameterization is a
-runtime feature. The same class is used for all its
-parameterizations. Similarly, JCC wrapper objects all use the same
-class but store type parameterizations on instances and make them
-accessible as a tuple via the <i>parameters_</i> property.
+## Handling generic classes
 
+Java 1.5 added support for parameterized types. JCC generates code to heed type
+parameters unless the _--no-generics_ command line parameter is used. Java type
+parameterization is a runtime feature. The same class is used for all its
+parameterizations. Similarly, JCC wrapper objects all use the same class but store
+type parameterizations on instances and make them accessible as a tuple via the
+_parameters__ property.
 
-For example, an <i>ArrayList&lt;Document&gt;</i> instance,
-has <i>(&lt;type 'Document'&gt;,)</i>
-for <i>parameters_</i> and its <i>get()</i> method uses
-that type parameter to wrap its return values.
 
+For example, an _ArrayList&lt;Document&gt;_ instance, has _(&lt;type 'Document'&gt;,)_
+for _parameters__ and its _get()_ method uses that type parameter to wrap its return
+values.
 
-To allocate an instance of a generic Java class with specific type
-parameters use the <i>of_()</i> method. This method accepts
-one or more Python wrapper classes to use as type parameters. For
-example, <i>java.util.ArrayList&lt;E&gt;</i> is declared to
-accept one type parameter. Its wrapper's <i>of_()</i> method
-hence accepts one parameter, a Python class, to use as type
-parameter for the return type of its <i>get()</i> method, among
-others:
+To allocate an instance of a generic Java class with specific type parameters use
+the _of_()_ method. This method accepts one or more Python wrapper classes to use
+as type parameters. For example, _java.util.ArrayList&lt;E&gt;_ is declared to
+accept one type parameter. Its wrapper's _of_()_ method hence accepts one parameter,
+a Python class, to use as type parameter for the return type of its _get()_ method,
+among others:
 
-<pre><code>
+```
     &gt&gt&gt a = ArrayList().of_(Document)
     &gt&gt&gt a
     &lt;ArrayList: []&gt;
@@ -418,13 +338,12 @@ others:
     True
     >>> a.get(0)
     &lt;Document: Document&lt;&gt;&gt;
-</code></pre>
+```
 
-The use of type parameters is, of course, optional. A generic Java
-class can still be used as before, without type parameters.
-Downcasting from <i>Object</i> is then necessary:
+The use of type parameters is, of course, optional. A generic Java class can still
+be used as before, without type parameters. Downcasting from _Object_ is then necessary:
 
-<pre><code>
+```
     >>> a = ArrayList()
     >>> a
     &lt;ArrayList: []&gt;
@@ -436,75 +355,59 @@ Downcasting from <i>Object</i> is then necessary:
     &lt;Object: Document&lt;&gt;&gt;
     >>> Document.cast_(a.get(0))
     &lt;Document: Document&lt;&gt;&gt;
-</code></pre>
-
-##Handling arrays
-
-Java arrays are wrapped with a C++ JArray
-template. The <i>[]</i> is available for read
-access. This template, <i>JArray&lt;T&gt;</i>, accomodates all
-java primitive types, <i>jstring</i>, <i>jobject</i> and
-wrapper class arrays.
+```
 
+## Handling arrays
 
-Java arrays are returned to Python in a <i>JArray</i> wrapper
-instance that implements the Python sequence protocol. It is
-possible to change an array's elements but not to change an array's
-size.
+Java arrays are wrapped with a C++ JArray template. The _[]_ is available for read
+access. This template, _JArray&lt;T&gt;_, accomodates all java primitive types,
+_jstring_, _jobject_ and wrapper class arrays.
 
+Java arrays are returned to Python in a _JArray_ wrapper instance that implements
+the Python sequence protocol. It is possible to change an array's elements but
+not to change an array's size.
 
-To convert a char array to a Python string use
-a <i>''.join(array)</i> construct.
+To convert a char array to a Python string use a _''.join(array)_ construct.
 
+Any Java method expecting an array can be called with the corresponding sequence
+object from python.
 
-Any Java method expecting an array can be called with the corresponding
-sequence object from python.
+To instantiate a Java array from Python, use one of the following forms:
 
-
-To instantiate a Java array from Python, use one of the following
-forms:
-
-<pre><code>
+```
     >>> array = JArray('int')(size)
     # the resulting Java int array is initialized with zeroes
 
     >>> array = JArray('int')(sequence)
     # the sequence must only contain ints
     # the resulting Java int array contains the ints in the sequence
-</code></pre>
-
-Instead of <i>'int'</i>, you may also use one
-of <i>'object'</i>, <i>'string'</i>, <i>'bool'</i>,
-<i>'byte'</i>, <i>'char'</i>, <i>'double'</i>,
-<i>'float'</i>, <i>'long'</i> and <i>'short'</i>
-to create an array of the corresponding type.
-
+```
 
-Because there is only one wrapper class for object arrays,
-the <i>JArray('object')</i> type's constructor takes a second
-argument denoting the class of the object elements. This argument is
-optional and defaults to <i>Object</i>.
+Instead of _'int'_, you may also use one of _'object'_, _'string'_, _'bool'_,
+_'byte'_, _'char'_, _'double'_, _'float'_, _'long'_ and _'short'_ to create an
+array of the corresponding type.
 
+Because there is only one wrapper class for object arrays, the _JArray('object')_
+type's constructor takes a second argument denoting the class of the object elements.
+This argument is optional and defaults to _Object_.
 
-As with the <i>Object</i> types, the <i>JArray</i> types
-also include a <i>cast_</i> method. This method becomes useful
-when the array returned to Python is wrapped as a
-plain <i>Object</i>. This is the case, for example, with
-nested arrays since there is no distinct Python type for every
-different java object array class - all java object arrays are
-wrapped by <i>JArray('object')</i>. For example:
+As with the _Object_ types, the _JArray_ types also include a _cast__ method. This
+method becomes useful when the array returned to Python is wrapped as a plain _Object_.
+This is the case, for example, with nested arrays since there is no distinct Python
+type for every different java object array class - all java object arrays are wrapped
+by _JArray('object')_. For example:
 
-<pre><code>
+```
 # cast obj to an array of ints
 >>> JArray('int').cast_(obj)
 # cast obj to an array of Document
 >>> JArray('object').cast_(obj, Document)
-</code></pre>
+```
 
-In both cases, the java type of obj must be compatible with the
-array type it is being cast to.
+In both cases, the java type of obj must be compatible with the array type it is
+being cast to.
 
-<pre><code>
+```
     # using nested array:
 
     >>> d = JArray('object')(1, Document)
@@ -530,15 +433,13 @@ array type it is being cast to.
     JArray&lt;int&gt;[0, 1, 2]
     >>> JArray('int').cast_(a[1])[0]
     0
-</code></pre>
+```
 
-To verify that a Java object is of a given array type, use
-the <i>instance_()</i> method available on the array
-type. This is not the same as verifying that it is assignable with
-elements of a given type. For example, using the arrays created
-above:
+To verify that a Java object is of a given array type, use the _instance_()_ method
+available on the array type. This is not the same as verifying that it is assignable
+with elements of a given type. For example, using the arrays created above:
 
-<pre><code>
+```
     # is d array of Object ? are d's elements of type Object ?
     >>> JArray('object').instance_(d)
     True
@@ -558,52 +459,42 @@ above:
     # can it receive Document instances ?
     >>> JArray('object').assignable_(d, Document)
     True
-</code></pre>
+```
 
-##Exception reporting
+## Exception reporting
 
-Exceptions that occur in the Java VM and that escape to C++ are
-reported as a <i>javaError</i> C++ exception. When using
-Python wrappers, the C++ exceptions are handled and reported with
-Python exceptions. When using C++ only, failure to handle the
+Exceptions that occur in the Java VM and that escape to C++ are reported as a
+_javaError_ C++ exception. When using Python wrappers, the C++ exceptions are handled
+and reported with Python exceptions. When using C++ only, failure to handle the
 exception in your C++ code will cause the process to crash.
 
+Exceptions that occur in the Java VM and that escape to the Python VM are reported
+with a _JavaError_ python exception object. The _getJavaException()_ method can
+be called on _JavaError_ objects to obtain the original java exception object
+wrapped as any other Java object. This Java object can be used to obtain a Java
+stack trace for the error, for example.
 
-Exceptions that occur in the Java VM and that escape to the Python
-VM are reported with a <i>JavaError</i> python exception
-object. The <i>getJavaException()</i> method can be called
-on <i>JavaError</i> objects to obtain the original java
-exception object wrapped as any other Java object. This Java object
-can be used to obtain a Java stack trace for the error, for example.
-
-
-Exceptions that occur in the Python VM and that escape to the Java
-VM, as for example can happen in Python extensions (see topic below)
-are reported to the Java VM as a <i>RuntimeException</i> or as
-a <i>PythonException</i> when using shared
-mode. See <a href="install.html">installation
-instructions</a> for more information about shared mode.
-
+Exceptions that occur in the Python VM and that escape to the Java VM, as for
+example can happen in Python extensions (see topic below) are reported to the
+Java VM as a _RuntimeException_ or as a _PythonException_ when using shared mode.
+See [installation instructions](install.html) for more information about shared mode.
 
-##Writing Java class extensions in Python
+## Writing Java class extensions in Python
 
-JCC makes it relatively easy to extend a Java class from
-Python. This is done via an intermediary class written in Java that
-implements a special method called <i>pythonExtension()</i>
-and that declares a number of native methods that are to be
+JCC makes it relatively easy to extend a Java class from Python. This is done
+via an intermediary class written in Java that implements a special method called
+_pythonExtension()_ and that declares a number of native methods that are to be
 implemented by the actual Python extension.
 
+When JCC sees these special extension java classes it generates the C++ code
+implementing the native methods they declare. These native methods call the
+corresponding Python method implementations passing in parameters and returning
+the result to the Java VM caller.
 
-When JCC sees these special extension java classes it generates the
-C++ code implementing the native methods they declare. These native
-methods call the corresponding Python method implementations passing
-in parameters and returning the result to the Java VM caller.
+For example, to implement a Lucene analyzer in Python, one would implement first
+such an extension class in Java:
 
-
-For example, to implement a Lucene analyzer in Python, one would
-implement first such an extension class in Java:
-
-<pre><code>
+```
 package org.apache.pylucene.analysis;
 
 import org.apache.lucene.analysis.Analyzer;
@@ -635,32 +526,25 @@ public class PythonAnalyzer extends Analyzer {
     public native void pythonDecRef();
     public native TokenStream tokenStream(String fieldName, Reader reader);
 }
-</code></pre>
-
-The <i>pythonExtension()</i> methods is what makes this class
-recognized as an extension class by JCC. They should be included
-verbatim as above along with the declaration of
-the <i>pythonObject</i> instance variable.
-
+```
 
-The implementation of the native <i>pythonDecRef()</i> method
-is generated by JCC and is necessary because it seems
-that <i>finalize()</i> cannot itself be native. Since an
-extension class wraps the Python instance object it's going to be
-calling methods on, its ref count needs to be decremented when this
-Java wrapper class disappears. A declaration
-for <i>pythonDecRef()</i> and a <i>finalize()</i>
-implementation should always be included verbatim as above.
+The _pythonExtension()_ methods is what makes this class recognized as an extension
+class by JCC. They should be included verbatim as above along with the declaration of
+the _pythonObject_ instance variable.
 
+The implementation of the native _pythonDecRef()_ method is generated by JCC and
+is necessary because it seems that _finalize()_ cannot itself be native. Since an
+extension class wraps the Python instance object it's going to be calling methods
+on, its ref count needs to be decremented when this Java wrapper class disappears.
+A declaration for _pythonDecRef()_ and a _finalize()_ implementation should always
+be included verbatim as above.
 
-Really, the only non boilerplate user input is the constructor of the
-class and the other native methods, <i>tokenStream()</i> in
-the example above.
-
+Really, the only non boilerplate user input is the constructor of the class and
+the other native methods, _tokenStream()_ in the example above.
 
 The corresponding Python class(es) are implemented as follows:
 
-<pre><code>
+```
 class _analyzer(PythonAnalyzer):
   def tokenStream(_self, fieldName, reader):
       class _tokenStream(PythonTokenStream):
@@ -687,155 +571,124 @@ class _analyzer(PythonAnalyzer):
           def close(self_):
               pass
       return _tokenStream()
-</code></pre>
-
-When an <i>\_\_init\_\_()</i> is declared, <i>super()</i>
-must be called or else the Java wrapper class will not know about
-the Python instance it needs to invoke.
-
+```
 
-When a java extension class declares native methods for which there
-are public or protected equivalents available on the parent class,
-JCC generates code that makes it possible to
-call <i>super()</i> on these methods from Python as well.
+When an _\_\_init\_\_()_ is declared, _super()_ must be called or else the Java
+wrapper class will not know about the Python instance it needs to invoke.
 
+When a java extension class declares native methods for which there are public
+or protected equivalents available on the parent class, JCC generates code that
+makes it possible to call _super()_ on these methods from Python as well.
 
 There are a number of extension examples available in PyLucene's test
-<a href="https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/test">suite</a>
-and <a href="https://svn.apache.org/viewvc/lucene/pylucene/trunk/samples">samples</a>.
+[suite](https://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/test) and
+[samples](https://svn.apache.org/viewvc/lucene/pylucene/trunk/samples).
 
-##Embedding a Python VM in a Java VM
-
-Using the same techniques used when writing a Python extension of a
-Java class, JCC may also be used to embed a Python VM in a Java VM.
-Following are the steps and constraints to follow to achieve this:
+## Embedding a Python VM in a Java VM
 
+Using the same techniques used when writing a Python extension of a Java class,
+JCC may also be used to embed a Python VM in a Java VM. Following are the steps
+and constraints to follow to achieve this:
 
 -
-JCC must be built in shared mode.  See
-<a href="install.html">installation
-instructions</a> for more information about shared mode.
-Note that for this use on macOS, JCC must also be built
-with the link flags <i>"-framework", "Python"</i> in
-the <i>LFLAGS</i> value.
+JCC must be built in shared mode.  See [installation instructions](install.html)
+for more information about shared mode. Note that for this use on macOS, JCC must
+also be built with the link flags _"-framework", "Python"_ in the _LFLAGS_ value.
 
 -
-As described in the previous section, define one or more Java
-classes to be "extended" from Python to provide the
-implementations of the native methods declared on them. Instances
-of these classes implement the bridges into the Python VM from
-Java.
+As described in the previous section, define one or more Java classes to be "extended"
+from Python to provide the implementations of the native methods declared on them.
+Instances of these classes implement the bridges into the Python VM from Java.
 
 -
-The <i>org.apache.jcc.PythonVM</i> Java class is going be
-used from the Java VM's main thread to initialize the embedded
-Python VM. This class is installed inside the JCC egg under the
-<i>jcc/classes</i> directory and the full path to this
-directory must be on the Java <i>CLASSPATH</i>.
+The _org.apache.jcc.PythonVM_ Java class is going be used from the Java VM's main
+thread to initialize the embedded Python VM. This class is installed inside the
+JCC egg under the _jcc/classes_ directory and the full path to this directory must
+be on the Java _CLASSPATH_.
 
 -
-The JCC egg directory contains the JCC shared runtime library - not
-the JCC Python extension shared library - but a library
-called <i>libjcc.dylib</i> on macOS,
-<i>libjcc.so</i> on Linux or <i>jcc.dll</i> on Windows.
-This directory must be added to the Java VM's shared library path
-via the <i>-Djava.library.path</i> command line parameter.
+The JCC egg directory contains the JCC shared runtime library - not the JCC Python
+extension shared library - but a library called _libjcc.dylib_ on macOS, _libjcc.so_
+on Linux or _jcc.dll_ on Windows. This directory must be added to the Java VM's
+shared library path via the _-Djava.library.path_ command line parameter.
 
 -
-In the Java VM's main thread, initialize the Python VM by
-calling its static <i>start()</i> method passing it a
-Python program name string and optional start-up arguments
-in a string array that will be made accessible in Python via
-<i>sys.argv</i>.  Note that the program name string is
-purely informational, and is not used by the
-<i>start()</i> code other than to initialize that
-Python variable.  This method returns the singleton PythonVM
-instance to be used in this Java VM. <i>start()</i>
-may be called multiple times; it will always return the same
-singleton instance.  This instance may also be retrieved at any
-later time via the static <i>get()</i> method defined
-on the <i>org.apache.jcc.PythonVM</i> class.
+In the Java VM's main thread, initialize the Python VM by calling its static
+_start()_ method passing it a Python program name string and optional start-up
+arguments in a string array that will be made accessible in Python via _sys.argv_.
+Note that the program name string is purely informational, and is not used by the
+_start()_ code other than to initialize that Python variable.  This method returns
+the singleton PythonVM instance to be used in this Java VM. _start()_ may be called
+multiple times; it will always return the same singleton instance.  This instance
+may also be retrieved at any later time via the static _get()_ method defined on
+the _org.apache.jcc.PythonVM_ class.
 
 -
-Any Java VM thread that is going to be calling into the Python VM
-should start with acquiring a reference to the Python thread state
-object by calling <i>acquireThreadState()</i> method on the
-Python VM instance. It should then release the Python thread state
-before terminating by calling <i>releaseThreadState()</i>.
-Calling these methods is optional but strongly recommended as it
-ensures that Python is not creating and throwing away a thread
-state everytime the Python VM is entered and exited from a given
-Java VM thread.
+Any Java VM thread that is going to be calling into the Python VM should start
+with acquiring a reference to the Python thread state object by calling
+_acquireThreadState()_ method on the Python VM instance. It should then release
+the Python thread state before terminating by calling _releaseThreadState()_.
+Calling these methods is optional but strongly recommended as it ensures that
+Python is not creating and throwing away a thread state everytime the Python VM
+is entered and exited from a given Java VM thread.
 
 -
-Any Java VM thread may instantiate a Python object for which an
-extension class was defined in Java as described in the previous
-section by calling the <i>instantiate()</i> method on the
-PythonVM instance. This method takes two string parameters, the
-name of the Python module and the name of the Python class to
-import and instantiate from it. The <i>\_\_init\_\_()</i>
-constructor on this class must be callable without any parameters
-and, if defined, must call <i>super()</i> in order to
-initialize the Java side. The <i>instantiate()</i> method is
-declared to return <i>java.lang.Object</i> but the return
-value is actually an instance of the Java extension class used and
-must be downcast to it.
-
-##Pythonic protocols
+Any Java VM thread may instantiate a Python object for which an extension class
+was defined in Java as described in the previous section by calling the
+_instantiate()_ method on the PythonVM instance. This method takes two string
+parameters, the name of the Python module and the name of the Python class to
+import and instantiate from it. The _\_\_init\_\_()_ constructor on this class
+must be callable without any parameters and, if defined, must call _super()_ in
+order to initialize the Java side. The _instantiate()_ method is declared to return
+_java.lang.Object_ but the return value is actually an instance of the Java extension
+class used and must be downcast to it.
 
-When generating wrappers for Python, JCC attempts to detect which
-classes can be made iterable:
+## Pythonic protocols
 
+When generating wrappers for Python, JCC attempts to detect which classes can be
+made iterable:
 
 -
-When a class declares to
-implement <i>java.lang.Iterable</i>, JCC makes it iterable
+When a class declares to implement _java.lang.Iterable_, JCC makes it iterable
 from Python.
 
 -
-When a Java class declares a method called <i>next()</i>
-with no arguments returning an object type, this class is made
-iterable. Its <i>next()</i> method is assumed to terminate
-iteration by returning <i>null</i>.
-
-
+When a Java class declares a method called _next()_ with no arguments returning
+an object type, this class is made iterable. Its _next()_ method is assumed to
+terminate iteration by returning _null_.
 
-JCC generates a Python mapping get method for a class when requested
-to do so via the <i>--mapping</i> command line option which
-takes two arguments, the class to generate the mapping get for and
-the Java method to use. The method is specified with its name
+JCC generates a Python mapping get method for a class when requested to do so via
+the _--mapping_ command line option which takes two arguments, the class to generate
+the mapping get for and the Java method to use. The method is specified with its name
 followed by ':' and its Java
-<a href="https://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/types.html#wp16432">signature</a>.
+[signature](https://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/types.html#wp16432).
 
+For example, _System.getProperties()['java.class.path']_ is made possible by:
 
-For example, <i>System.getProperties()['java.class.path']</i> is
-made possible by:
-
-<pre><code>
+```
 --mapping java.util.Properties
         'getProperty:(Ljava/lang/String;)Ljava/lang/String;'
                     # asking for a Python mapping protocol wrapper
                     # for get access on the Properties class by
                     # calling its getProperty method
-</code></pre>
+```
 
-JCC generates Python sequence length and get methods for a class
-when requested to do so via the <i>--sequence</i> command line
-option which takes three arguments, the class to generate the
-sequence length and get for and the two java methods to use. The
-methods are specified with their name followed by ':' and their Java
-<a href="https://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/types.html#wp16432">signature</a>. For example:
+JCC generates Python sequence length and get methods for a class when requested
+to do so via the _--sequence_ command line option which takes three arguments,
+the class to generate the sequence length and get for and the two java methods
+to use. The methods are specified with their name followed by ':' and their Java
+[signature](https://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/types.html#wp16432).
+For example:
 
-<pre><code>
+```
 for i in xrange(len(hits)):
 doc = hits[i]
 ...
-</code></pre>
+```
 
 is made possible by:
-<pre><code>
+```
 --sequence org.apache.lucene.search.Hits
          'length:()I'
          'doc:(I)Lorg/apache/lucene/document/Document;'
-</code></pre>
-
+```
diff --git a/content/pages/pylucene/jcc/index.md b/content/pages/pylucene/jcc/index.md
index 7932320..cfde122 100644
--- a/content/pages/pylucene/jcc/index.md
+++ b/content/pages/pylucene/jcc/index.md
@@ -1,41 +1,37 @@
 Title: Welcome to JCC, PyLucene's code generator
-URL: pylucene/jcc/
+URL: pylucene/jcc/index.html
 save_as: pylucene/jcc/index.html
-template: pylucene-jcc/page
+template: lucene/pylucene/jcc/page
 
+## What is JCC ?
 
-##What is JCC ?
+JCC is a C++ code generator that produces a C++ object interface wrapping a Java
+library via Java's Native Interface (JNI). JCC also generates C++ wrappers that
+conform to Python's C type system making the instances of Java classes directly
+available to a Python interpreter.
 
-JCC is a C++ code generator that produces a C++ object interface
-wrapping a Java library via Java's Native Interface (JNI). JCC
-also generates C++ wrappers that conform to Python's C type system
-making the instances of Java classes directly available to a Python
-interpreter.
-
-When generating Python wrappers, JCC produces a complete Python
-extension module via the distutils or
-[setuptools](https://pypi.python.org/pypi/setuptools) packages.
+When generating Python wrappers, JCC produces a complete Python extension module
+via the distutils or [setuptools](https://pypi.python.org/pypi/setuptools) packages.
 
 See [here](features.html) for more information and documentation about JCC.
 
-##Requirements
+## Requirements
 
 JCC is supported on Mac OS X, Linux, Solaris and Windows.
 
-JCC requires Python version 2.x (x >= 3.5) or Python version 3.x (x >= 3)
-and Java version 1.x (x >= 4). Building JCC requires a C++ compiler. Use of
+JCC requires Python version 2.x (x >= 3.5) or Python version 3.x (x >= 3) and Java
+version 1.x (x >= 4). Building JCC requires a C++ compiler. Use of
 [setuptools](https://pypi.python.org/pypi/setuptools) is recommended.
 
-See the [installation instructions](install.html) for more information about
-building JCC from sources.
+See the [installation instructions](install.html) for more information about building
+JCC from sources.
 
-##Source Code
+## Source Code
 
-The source code to JCC is part of PyLucene's and can be obtained with
-a subversion client from
-[here](https://svn.apache.org/repos/asf/lucene/pylucene/trunk/jcc)
+The source code to JCC is part of PyLucene's and can be obtained with a subversion
+client from [here](https://svn.apache.org/repos/asf/lucene/pylucene/trunk/jcc)
 
-##Mailing List
+## Mailing List
 
-If you'd like to contribute to JCC or are having issues or questions
-with JCC, please subscribe to the PyLucene developer [mailing list](../mailing-lists.html)
+If you'd like to contribute to JCC or are having issues or questions with JCC,
+please subscribe to the PyLucene developer [mailing list](../mailing-lists.html)
diff --git a/content/pages/pylucene/jcc/install.md b/content/pages/pylucene/jcc/install.md
index ef9e2c2..2d9fc77 100644
--- a/content/pages/pylucene/jcc/install.md
+++ b/content/pages/pylucene/jcc/install.md
@@ -1,242 +1,177 @@
 Title: Install JCC
-URL: pylucene/jcc/
+URL: pylucene/jcc/install.html
 save_as: pylucene/jcc/install.html
-template: pylucene-jcc/page
+template: lucene/pylucene/jcc/page
 
-##Getting JCC's Source Code
-
-JCC's source code is included with PyLucene's. If you've downloaded
-the PyLucene source code already, JCC's is to be found in
-the <i>jcc</i> subdirectory.
+## Getting JCC's Source Code
 
+JCC's source code is included with PyLucene's. If you've downloaded the PyLucene
+source code already, JCC's is to be found in the _jcc_ subdirectory.
 
 To get the JCC source code only from SVN use:<br/>
-<code>$ svn co
-https://svn.apache.org/repos/asf/lucene/pylucene/trunk/jcc jcc</code>
-
-##Building JCC
-
-JCC is a Python extension written in Python and C++. It requires a
-Java Runtime Environment to operate as it uses Java's reflection
-APIs to do its work. It is built and installed
-via <i>distutils</i>
-or <a href="https://pypi.python.org/pypi/setuptools">setuptools</a>.
-
-
-- On MacOS and Windows, <i>setup.py</i> will attempt to find a JDK on your
-system and report what it found by showing the values for <i>JAVAHOME</i> and
-<i>JAVAFRAMEWORKS</i> it was able to derive. If the JDK installation that was
-found is not the one you wish to use or if you are not on MacOS or Windows,
-you can either edit <i>setup.py</i> and review that the values in the
-<i>INCLUDES</i>, <i>CFLAGS</i>, <i>DEBUG_CFLAGS</i>, <i>LFLAGS</i>,
-<i>JAVAC</i>, and <i>JAVADOC</i> dicts are correct for your system or set
-<b>all</b> of the environment variables <i>JCC_JDK</i>, <i>JCC_INCLUDES</i>,
-<i>JCC_CFLAGS</i>, <i>JCC_DEBUG_CFLAGS</i>, <i>JCC_LFLAGS</i>,
-<i>JCC_JAVAC</i> and <i>JCC_JAVADOC</i>, using os.pathsep as value separator
-to override them.
-The values hereby configured are going to be compiled into JCC's
-<i>config.py</i> file and are going to be used by JCC when invoking
-<i>setuptools</i> to compile the extensions it is used to generate code for.
+`$ svn co https://svn.apache.org/repos/asf/lucene/pylucene/trunk/jcc jcc`
+
+## Building JCC
+
+JCC is a Python extension written in Python and C++. It requires a Java Runtime
+Environment to operate as it uses Java's reflection APIs to do its work. It is
+built and installed via _distutils_ or [setuptools](https://pypi.python.org/pypi/setuptools).
+
+- On MacOS and Windows, _setup.py_ will attempt to find a JDK on your system and
+report what it found by showing the values for _JAVAHOME_ and _JAVAFRAMEWORKS_ it
+was able to derive. If the JDK installation that was found is not the one you
+wish to use or if you are not on MacOS or Windows, you can either edit _setup.py_
+and review that the values in the _INCLUDES_, _CFLAGS_, _DEBUG_CFLAGS_, _LFLAGS_,
+_JAVAC_, and _JAVADOC_ dicts are correct for your system or set **all** of the
+environment variables _JCC_JDK_, _JCC_INCLUDES_, _JCC_CFLAGS_, _JCC_DEBUG_CFLAGS_,
+_JCC_LFLAGS_, _JCC_JAVAC_ and _JCC_JAVADOC_, using os.pathsep as value separator
+to override them. The values hereby configured are going to be compiled into JCC's
+_config.py_ file and are going to be used by JCC when invoking _setuptools_ to
+compile the extensions it is used to generate code for.
 
 - At the command line, enter:
-<code>
+```
 $ python setup.py build<br/>
 $ sudo python setup.py install<br/>
-</code>
-
-
-##Requirements
-
-JCC requires a Java Development Kit to be present. It uses the Java
-Native Invocation Interface and expects <i>&lt;jni.h&gt;</i>
-and the Java libraries to be present at build and runtime.
-
-
-JCC requires a C++ compiler. A recent C++ compiler for your
-platform is expected to work as expected.
-
-
-##Shared Mode: Support for the <i>--shared</i> Flag
+```
 
-JCC includes a small runtime that keeps track of the Java VM and of
-Java objects escaping it. Because there can be only one Java VM
-embedded in a given process at a time, the JCC runtime must be
-compiled as a shared library when more than one JCC-built Python
-extension is going to be imported into a given Python process.
+## Requirements
 
+JCC requires a Java Development Kit to be present. It uses the Java Native Invocation
+Interface and expects _&lt;jni.h&gt;_ and the Java libraries to be present at build
+and runtime.
 
-Shared mode depends on <i>setuptools</i>' capability of
-building plain shared libraries (as opposed to shared libraries for
-Python extensions).
+JCC requires a C++ compiler. A recent C++ compiler for your platform is expected
+to work as expected.
 
+## Shared Mode: Support for the _--shared_ Flag
 
-Currently, shared mode is supported with <i>setuptools 0.6c7</i> and above out
-of the box on MacOS and Windows. On Linux, a patch to <i>setuptools</i> needs
-to be applied first. This patch is included in the JCC source distribution in
-the <i>jcc2/patches</i> directory, <i>patch.43</i>. This patch was submitted
-to the <i>setuptools</i> project via <a
-href="https://bugs.python.org/setuptools/issue43">issue 43</a>.
-<i>setup.py</i> will attempt to apply the patch for you via monkeypatching.
+JCC includes a small runtime that keeps track of the Java VM and of Java objects
+escaping it. Because there can be only one Java VM embedded in a given process
+at a time, the JCC runtime must be compiled as a shared library when more than
+one JCC-built Python extension is going to be imported into a given Python process.
 
+Shared mode depends on _setuptools_' capability of building plain shared libraries
+(as opposed to shared libraries for Python extensions).
 
-The <i>shared mode disabled</i> error reported during the
-build of JCC's on Linux contains the exact instructions on how to
-patch the <i>setuptools</i> installation
-with <i>patch.43</i> on your system.
+Currently, shared mode is supported with _setuptools 0.6c7_ and above out of the
+box on MacOS and Windows. On Linux, a patch to _setuptools_ needs to be applied
+first. This patch is included in the JCC source distribution in the _jcc2/patches_
+directory, _patch.43_. This patch was submitted to the _setuptools_ project via
+[issue 43](https://bugs.python.org/setuptools/issue43). _setup.py_ will attempt
+to apply the patch for you via monkeypatching.
 
+The _shared mode disabled_ error reported during the build of JCC's on Linux
+contains the exact instructions on how to patch the _setuptools_ installation
+with _patch.43_ on your system.
 
-Shared mode is also required when embedding Python in a Java VM as
-JCC's runtime shared library is used by the JVM to load JCC and
-bootstrap the Python VM via the JNI.
+Shared mode is also required when embedding Python in a Java VM as JCC's runtime
+shared library is used by the JVM to load JCC and bootstrap the Python VM via the
+JNI.
 
 
-When shared mode is not enabled, not supported
-or <i>distutils</i> is used instead
-of <i>setuptools</i>, static mode is used instead. The JCC
-runtime code is statically linked with each JCC-built Python
-extension and only one such extension can be used in a given Python
-process at a time.
+When shared mode is not enabled, not supported or _distutils_ is used instead
+of _setuptools_, static mode is used instead. The JCC runtime code is statically
+linked with each JCC-built Python extension and only one such extension can be
+used in a given Python process at a time.
 
+As setuptools grows its shared library building capability it is expected that]
+more operating systems should be supported with shared mode in the future.
 
-As setuptools grows its shared library building capability it is
-expected that more operating systems should be supported with shared
-mode in the future.
-
-
-Shared mode can be forced off by building JCC with
-the <i>NO_SHARED</i> environment variable set.
-
+Shared mode can be forced off by building JCC with the _NO_SHARED_ environment'
+variable set.
 
 There are two defaults to consider here:
 
 
 - Is JCC built with shared mode support or not ?
 
-    - By default, on MacOS, Linux or Windows, this is the case when using a
-      modern version of <i>setuptools</i>
-
-    - On other operating systems shared mode support is off by
-      default - not supported - because shared mode depends on
-      <i>setuptools</i>'s capability of building a regular
-      shared library which is still an experimental feature.
-
-- Is a JCC-built Python extension built with shared mode ?<br/>
-    By default, no, shared mode is enabled only with
-    the <i>--shared</i> command line argument.
-
-
+    - By default, on MacOS, Linux or Windows, this is the case when using a modern
+      version of _setuptools_
 
-##Notes for MacOS
+    - On other operating systems shared mode support is off by default - not
+      supported - because shared mode depends on _setuptools_'s capability of
+      building a regular shared library which is still an experimental feature.
 
-On MacOS, Java is installed by Apple's setup as a framework. The
-values in <i>setup.py</i> for <i>INCLUDES</i>
-and <i>LFLAGS</i> for <i>darwin</i> should be correct
-and ready to use when <i>setup.py</i> was able to derive <i>JAVAHOME</i> and
-<i>JAVAFRAMEWORKS</i>.
+- Is a JCC-built Python extension built with shared mode ?<br/>By default, no,
+  shared mode is enabled only with the _--shared_ command line argument.
 
+## Notes for MacOS
 
-  However, if you intend to use the 'system' Python from a Java VM
-  on MacOS -- Python embedded in Java --
-  you will need to add the flags <i>"-framework", "Python"</i>
-  to the <i>LFLAGS</i> value.
+On MacOS, Java is installed by Apple's setup as a framework. The values in
+_setup.py_ for _INCLUDES_ and _LFLAGS_ for _darwin_ should be correct and ready
+to use when _setup.py_ was able to derive _JAVAHOME_ and _JAVAFRAMEWORKS_.
 
+  However, if you intend to use the 'system' Python from a Java VM on MacOS --
+  Python embedded in Java -- you will need to add the flags _"-framework", "Python"_
+  to the _LFLAGS_ value.
 
-##Notes for Linux
-
-JCC has been built and tested on a variety of Linux distributions,
-32- and 64-bit. Getting the java configuration correct is important
-and is done differently for every distribution.<br/>
-For example:
+## Notes for Linux
 
+JCC has been built and tested on a variety of Linux distributions, 32- and 64-bit.
+Getting the java configuration correct is important and is done differently for
+every distribution.<br/>For example:
 
 - On Ubuntu, to install Java 5, these commands may be used:
-<code>
+```
       $ sudo apt-get install sun-java5-jdk<br/>
       $ sudo update-java-alternatives -s java-1.5.0-sun<br/>
-</code>
-The samples flags for Linux in JCC's setup.py should be close to
-correct.
-
-- On Gentoo, the <i>java-config</i> utility should be used to
-locate, and possibly change, the default java installation.
-The sample flags for Linux in JCC's <i>setup.py</i> should
-be changed to reflect the root of the Java installation which may
-be obtained via:
-<code>
+```
+The samples flags for Linux in JCC's setup.py should be close to correct.
+
+- On Gentoo, the _java-config_ utility should be used to locate, and possibly
+change, the default java installation. The sample flags for Linux in JCC's
+_setup.py_ should be changed to reflect the root of the Java installation which
+may be obtained via:
+```
       $ java-config -O
-</code>
-
-
-
-See earlier section about <a href="#shared">Shared Mode</a> for
-Linux support.
-
-
-##Notes for Solaris 11 with Sun Studio C++ 12
-
-JCC has been built and tested on Solaris 11 with Sun Studio C++ 12, Java 1.6
-and Python 2.4.
-
+```
 
-Because JCC is written in C++, Python's <i>distutils</i> must
-be nudged a bit to invoke the correct compiler. Sun Studio's C
-compiler is called <i>cc</i> while its C++ compiler is
-called <i>CC</i>. To build JCC, use the following shell
-command to ensure that the C++ compiler is used:
+See earlier section about [Shared Mode](#shared) for Linux support.
 
-<code>
-$ CC=CC python setup.py build
-</code>
+## Notes for Solaris 11 with Sun Studio C++ 12
 
-Shared mode is not currently implemented for
-Solaris, <i>setuptools</i> needs to be taught how to build
-plain shared libraries on Solaris first.
+JCC has been built and tested on Solaris 11 with Sun Studio C++ 12, Java 1.6 and
+Python 2.4.
 
+Because JCC is written in C++, Python's _distutils_ must be nudged a bit to
+invoke the correct compiler. Sun Studio's C compiler is called _cc_ while its C++
+compiler is called _CC_. To build JCC, use the following shell command to ensure
+that the C++ compiler is used:
 
-##Notes for Solaris 11.1 with GCC 4.5
+`$ CC=CC python setup.py build`
 
-JCC has been built and tested on Solaris 11.1 with gcc 4.5, Java 1.7 and
-Python 2.6. Make sure, you?ve already installed the following packages:
-gcc-4.5, jre-1.7, jdk-1.7, python-2.6, ant, gnu-make and subversion.
+Shared mode is not currently implemented for Solaris, _setuptools_ needs to be
+taught how to build plain shared libraries on Solaris first.
 
-Missing packages can be installed via <i>pkg install</i>.
+## Notes for Solaris 11.1 with GCC 4.5
 
-- Edit setup.py and do the following changes:
-Inside JDK = { ? } change the entry for sunos5 to:
-<code>'sunos5': '/usr/jdk/instances/jdk1.7.0',</code>
-Inside CFLAGS= {?} change the entry for sunos5 to:
-<code>'sunos5': ['-fno-strict-aliasing', '-Wno-write-strings'],</code>
-- <code>python setup.py build</code>
-- <code>su python setup.py install</code>
+JCC has been built and tested on Solaris 11.1 with gcc 4.5, Java 1.7 and Python
+2.6. Make sure, you?ve already installed the following packages: gcc-4.5, jre-1.7,
+jdk-1.7, python-2.6, ant, gnu-make and subversion.
 
+Missing packages can be installed via _pkg install_.
 
-##Notes for Windows
+- Edit setup.py and do the following changes: Inside JDK = { ? } change the entry
+for sunos5 to: `'sunos5': '/usr/jdk/instances/jdk1.7.0',` Inside CFLAGS= {?} change
+the entry for sunos5 to: `'sunos5': ['-fno-strict-aliasing', '-Wno-write-strings'],`
+- `python setup.py build`
+- `su python setup.py install`
 
-At this time, JCC has been built and tested on Win2k and WinXP with
-a variety of Python and Java versions.
+## Notes for Windows
 
+At this time, JCC has been built and tested on Win2k and WinXP with a variety of
+Python and Java versions.
 
-- Adding the Python directory to <i>PATH</i> is recommended.
+- Adding the Python directory to _PATH_ is recommended.
+- Adding the Java directories containing the necessary DLLs and to _PATH_ is a must.
+- Adding the directory containing _javac.exe_ to _PATH_ is required for shared
+  mode (enabled by default if _setuptools >= 0.6c7_ is found to be installed).
 
-- Adding the Java directories containing the necessary DLLs and to
-<i>PATH</i> is a must.
-
-- Adding the directory containing <i>javac.exe</i>
-to <i>PATH</i> is required for shared mode (enabled by
-default if <i>setuptools >= 0.6c7</i> is found to be
-installed).
-
-
-
-##Notes for Python 2.3
+## Notes for Python 2.3
 
 To use JCC with Python 2.3, setuptools is required
 
-
-- download <a href="https://pypi.python.org/pypi/setuptools">setuptools</a>.
-
-- edit the downloaded <i>setuptools</i> egg file to use
-python2.3 instead of python2.4.
-
-- At the command line, run:<br/>
-<code>$ sudo sh setuptools-0.6c7-py2.4.egg</code>
+- download [setuptools](https://pypi.python.org/pypi/setuptools).
+- edit the downloaded _setuptools_ egg file to use python2.3 instead of python2.4.
+- At the command line, run:<br/> `$ sudo sh setuptools-0.6c7-py2.4.egg`
diff --git a/content/pages/pylucene/jcc/sidebar.md b/content/pages/pylucene/jcc/sidebar.md
deleted file mode 100644
index f82e098..0000000
--- a/content/pages/pylucene/jcc/sidebar.md
+++ /dev/null
@@ -1,30 +0,0 @@
-Title: Sidebar
-category: sidebar-pylucene-jcc
-save_as:
-slug: sidebar-pylucene-jcc
-
-# Documentation
-  - [License](https://www.apache.org/licenses/)
-  - [Features](features.html)
-  - [Install](install.html)
-
-# Events
-
-  - <a  href="https://www.apache.org/events/current-event.html" target="_blank"><img src="https://www.apache.org/events/current-event-125x125.png"/></a>
-
-# ASF links
-  - [Apache Software Foundation](http://www.apache.org)
-  - [Thanks](http://www.apache.org/foundation/thanks.html)
-  - [Become a Sponsor](http://www.apache.org/foundation/sponsorship.html)
-  - [Security](http://www.apache.org/security/)
-
-# Related Projects
-  - [Apache Hadoop](http://hadoop.apache.org)
-  - [Apache ManifoldCF](http://manifoldcf.apache.org/)
-  - [Apache Lucene.Net](http://lucenenet.apache.org/)
-  - [Apache Lucy](http://lucy.apache.org/)
-  - [Apache Mahout](http://mahout.apache.org)
-  - [Apache Nutch](http://nutch.apache.org)
-  - [Apache OpenNLP](http://opennlp.apache.org/)
-  - [Apache Tika](http://tika.apache.org)
-  - [Apache Zookeeper](http://zookeeper.apache.org)
diff --git a/content/pages/pylucene/mailing-lists.md b/content/pages/pylucene/mailing-lists.md
index 0929b7c..5d343ee 100644
--- a/content/pages/pylucene/mailing-lists.md
+++ b/content/pages/pylucene/mailing-lists.md
@@ -1,52 +1,47 @@
 Title: Mailing Lists
-URL: pylucene/
+URL: pylucene/mailing-lists.html
 save_as: pylucene/mailing-lists.html
-template: pylucene/page
+template: lucene/pylucene/page
 
-##Users
+## Users
 
-Historically, Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> user issues or questions have almost always
-been best addressed on the Java Lucene User mailing list. PyLucene
-users with general Lucene questions should consider contacting
-the <a href="https://lucene.apache.org/java/docs/mailinglists.html#Java%20User%20List">Java
-Lucene User</a> list first.
+Historically, Lucene<span style="vertical-align: super; font-size: xx-small">TM</span>
+user issues or questions have almost always been best addressed on the Java Lucene
+User mailing list. PyLucene users with general Lucene questions should consider
+contacting the [Java Lucene User](https://lucene.apache.org/java/docs/mailinglists.html#Java%20User%20List)
+list first.
 
-
-For issues or questions specific to PyLucene such as build issues,
-please contact the <a href="#Developers">PyLucene Developer</a>
-mailing list.
+For issues or questions specific to PyLucene such as build issues, please contact
+the [PyLucene Developer](#Developers) mailing list.
 
 <note>
-In order to post to the <a href="#Developers">PyLucene Developer</a>
-list, it is necessary to first <a href="mailto:pylucene-dev-subscribe@lucene.apache.org">subscribe</a> to it. See below for more information.
+In order to post to the [PyLucene Developer](#Developers) list, it is necessary
+to first [subscribe](mailto:pylucene-dev-subscribe@lucene.apache.org) to it.
+See below for more information.
 </note>
 
-##Developers
-
-If you'd like to contribute to PyLucene or are having questions
-specific to PyLucene or JCC, please subscribe to the PyLucene
-developer mailing list.
+## Developers
 
+If you'd like to contribute to PyLucene or are having questions specific to
+PyLucene or JCC, please subscribe to the PyLucene developer mailing list.
 
 The PyLucene developer mailing list is:
-<a href="mailto:pylucene-dev@lucene.apache.org">pylucene-dev@lucene.apache.org</a>.
-
-
-- <a href="mailto:pylucene-dev-subscribe@lucene.apache.org">Subscribe to List</a>
-- <a href="mailto:pylucene-dev-unsubscribe@lucene.apache.org">Unsubscribe from List</a>
-- <a href="https://mail-archives.apache.org/mod_mbox/lucene-pylucene-dev/">View List Archive</a>
+[pylucene-dev@lucene.apache.org](mailto:pylucene-dev@lucene.apache.org).
 
+- [Subscribe to List](mailto:pylucene-dev-subscribe@lucene.apache.org)
+- [Unsubscribe from List](mailto:pylucene-dev-unsubscribe@lucene.apache.org)
+- [View List Archive](https://mail-archives.apache.org/mod_mbox/lucene-pylucene-dev/)
 
 <note>
-In order to post to the list, it is necessary to first <a href="mailto:pylucene-dev-subscribe@lucene.apache.org">subscribe</a> to it.
+In order to post to the list, it is necessary to first
+[subscribe](mailto:pylucene-dev-subscribe@lucene.apache.org) to it.
 </note>
 
-##Commits
-
-If you'd like to be notified when source code changes are committed
-to PyLucene's <a href="version_control.html">version control
-system</a> then subscribe to the PyLucene commits mailing list.
+## Commits
 
+If you'd like to be notified when source code changes are committed to PyLucene's
+[version control system](version_control.html) then subscribe to the PyLucene
+commits mailing list.
 
-- <a href="mailto:pylucene-commits-subscribe@lucene.apache.org">Subscribe to List</a>
-- <a href="mailto:pylucene-commits-unsubscribe@lucene.apache.org">Unsubscribe from List</a>
+- [Subscribe to List](mailto:pylucene-commits-subscribe@lucene.apache.org)
+- [Unsubscribe from List](mailto:pylucene-commits-unsubscribe@lucene.apache.org)
diff --git a/content/pages/pylucene/sidebar.md b/content/pages/pylucene/sidebar.md
deleted file mode 100644
index 024b389..0000000
--- a/content/pages/pylucene/sidebar.md
+++ /dev/null
@@ -1,38 +0,0 @@
-Title: Sidebar
-category: sidebar-pylucene
-save_as:
-slug: sidebar-pylucene
-
-<div class="button-wrapper" style="margin-top: 40px;">
-  <div class="button-green">
-    <a href="http://www.apache.org/dyn/closer.lua/lucene/pylucene/">Download</a>
-    <div class="flap top">Click to begin</div>
-    <div class="flap bottom">of Apache PyLucene</div>
-  </div>
-</div>
-
-# Documentation
-  - [License](https://www.apache.org/licenses/)
-  - [Features](features.html)
-  - [Install](install.html)
-
-# Events
-
-  - <a  href="https://www.apache.org/events/current-event.html" target="_blank"><img src="https://www.apache.org/events/current-event-125x125.png"/></a>
-
-# ASF links
-  - [Apache Software Foundation](http://www.apache.org)
-  - [Thanks](http://www.apache.org/foundation/thanks.html)
-  - [Become a Sponsor](http://www.apache.org/foundation/sponsorship.html)
-  - [Security](http://www.apache.org/security/)
-
-# Related Projects
-  - [Apache Hadoop](http://hadoop.apache.org)
-  - [Apache ManifoldCF](http://manifoldcf.apache.org/)
-  - [Apache Lucene.Net](http://lucenenet.apache.org/)
-  - [Apache Lucy](http://lucy.apache.org/)
-  - [Apache Mahout](http://mahout.apache.org)
-  - [Apache Nutch](http://nutch.apache.org)
-  - [Apache OpenNLP](http://opennlp.apache.org/)
-  - [Apache Tika](http://tika.apache.org)
-  - [Apache Zookeeper](http://zookeeper.apache.org)
diff --git a/content/pages/pylucene/version_control.md b/content/pages/pylucene/version_control.md
index 3229eea..af6c3d1 100644
--- a/content/pages/pylucene/version_control.md
+++ b/content/pages/pylucene/version_control.md
@@ -1,10 +1,10 @@
 Title: Source Code
-URL: pylucene/
+URL: pylucene/version_control.html
 save_as: pylucene/version_control.html
-template: pylucene/page
+template: lucene/pylucene/page
 
-#Source Code
-The source files are now stored using Subversion (see https://subversion.tigris.org/ and https://svnbook.red-bean.com/)
+The source files are now stored using Subversion (see https://subversion.tigris.org/
+and https://svnbook.red-bean.com/)
 
-- Latest <b>trunk</b>:
-<code>svn checkout https://svn.apache.org/repos/asf/lucene/pylucene/trunk/ pylucene_trunk</code>
+- Latest **trunk**:
+`svn checkout https://svn.apache.org/repos/asf/lucene/pylucene/trunk/ pylucene_trunk`
diff --git a/content/pages/sidebar.md b/content/pages/sidebar.md
deleted file mode 100644
index 00d7878..0000000
--- a/content/pages/sidebar.md
+++ /dev/null
@@ -1,55 +0,0 @@
-Title: Sidebar
-category: sidebar-tlp
-save_as:
-slug: sidebar-tlp
-
-<div class="button-green">
-  <a href="core/downloads.html">download</a>
-  <div class="flap top">click to</div>
-  <div class="flap bottom">apache lucene 8.3.0</div>
-</div>
-<div class="download-desc">apache lucene 8.3.0</div>
-<div class="button-orange">
-  <a href="solr/downloads.html?">download</a>
-  <div class="flap top">click to</div>
-  <div class="flap bottom">apache solr 8.3.0</div>
-</div>
-<div class="download-desc">apache solr 8.3.0</div>
-
-# Projects
-  - [Lucene Core (Java)](/core/)
-  - [Solr](./solr/)
-  - [PyLucene](./pylucene/)
-  - [Open Relevance (Discontinued)](./openrelevance/)
-
-# About
-  - [License](https://www.apache.org/licenses/)
-  - [Who We are](/whoweare.html)
-
-# Events
-
-  - <a  href="https://www.apache.org/events/current-event.html" target="_blank"><img src="https://www.apache.org/events/current-event-125x125.png"/></a>
-
-# ASF links
-  - [Apache Software Foundation](http://www.apache.org)
-  - [Thanks](http://www.apache.org/foundation/thanks.html)
-  - [Become a Sponsor](http://www.apache.org/foundation/sponsorship.html)
-  - [Security](http://www.apache.org/security/)
-
-# Editing This Site
-
-  - [Instructions](/site-instructions.html)
-  - [ASF CMS](http://www.apache.org/dev/cms.html)
-  - [ASF CMS Reference/FAQ](http://www.apache.org/dev/cmsref.html)
-  - [Markdown](http://daringfireball.net/projects/markdown/syntax)
-
-# Related Projects
-  - [Apache Hadoop](http://hadoop.apache.org)
-  - [Apache ManifoldCF](http://manifoldcf.apache.org/)
-  - [Apache Lucene.Net](http://lucenenet.apache.org/)
-  - [Apache Lucy](http://lucy.apache.org/)
-  - [Apache Mahout](http://mahout.apache.org)
-  - [Apache Nutch](http://nutch.apache.org)
-  - [Apache OpenNLP](http://opennlp.apache.org/)
-  - [Apache Tika](http://tika.apache.org)
-  - [Apache Zookeeper](http://zookeeper.apache.org)
diff --git a/content/pages/site-instructions.md b/content/pages/site-instructions.md
index 195e7fe..8ce9122 100644
--- a/content/pages/site-instructions.md
+++ b/content/pages/site-instructions.md
@@ -1,7 +1,7 @@
 Title: Updating the Lucene Website
-URL:
+URL: site-instructions.html
 save_as: site-instructions.html
-template: lucene-tlp/page
+template: lucene/tlp/page
 
 ## Editing Content on the Lucene<span style="vertical-align: super; font-size: xx-small">TM</span> sites
 
diff --git a/content/pages/solr/community.md b/content/pages/solr/community.md
index 9f23d3b..289cc3f 100644
--- a/content/pages/solr/community.md
+++ b/content/pages/solr/community.md
@@ -1,5 +1,5 @@
 Title: Community
-URL: solr/
+URL: solr/community.html
 save_as: solr/community.html
 template: solr/community
 Notice:    Licensed to the Apache Software Foundation (ASF) under one
diff --git a/content/pages/solr/downloads.md b/content/pages/solr/downloads.md
index 7f973b7..667e01b 100644
--- a/content/pages/solr/downloads.md
+++ b/content/pages/solr/downloads.md
@@ -1,74 +1,8 @@
-Title: Downloads
-URL: solr/
+Title: Solr Downloads
+URL: solr/downloads.html
 save_as: solr/downloads.html
-template: solr/page
+template: solr/downloads
 
-# Solr Downloads
-
-Official releases are usually created when the [developers](../whoweare.html) feel there are
-sufficient changes, improvements and bug fixes to warrant a release.  Due to the voluntary
-nature of Solr, no releases are scheduled in advance.
-
-## Solr 8.3.0 ##
-
-Solr 8.3.0 is the most recent Apache Solr release.
-
- - Source release: [solr-8.3.0-src.tgz](https://www.apache.org/dyn/closer.lua/lucene/solr/8.3.0/solr-8.3.0-src.tgz) [[PGP](https://www.apache.org/dist/lucene/solr/8.3.0/solr-8.3.0-src.tgz.asc)] [[SHA512](https://www.apache.org/dist/lucene/solr/8.3.0/solr-8.3.0-src.tgz.sha512)]
- - Binary releases:  [solr-8.3.0.tgz](https://www.apache.org/dyn/closer.lua/lucene/solr/8.3.0/solr-8.3.0.tgz) [[PGP](https://www.apache.org/dist/lucene/solr/8.3.0/solr-8.3.0.tgz.asc)] [[SHA512](https://www.apache.org/dist/lucene/solr/8.3.0/solr-8.3.0.tgz.sha512)] / [solr-8.3.0.zip](https://www.apache.org/dyn/closer.lua/lucene/solr/8.3.0/solr-8.3.0.zip) [[PGP](https://www.apache.org/dist/lucene/solr/8.3.0/solr-8.3.0.zip.asc)] [[SHA512](https://www.apache.org/dist/lucene/solr/8.3.0/solr-8. [...]
- - [Change log](https://lucene.apache.org/solr/8.3.0/changes/Changes.html)
-
-## Solr 7.7.2 ##
-
-Solr 7.7.2 is the last release in the 7.x series.
-
- - Source release: [solr-7.7.2-src.tgz](https://www.apache.org/dyn/closer.lua/lucene/solr/7.7.2/solr-7.7.2-src.tgz) [[PGP](https://www.apache.org/dist/lucene/solr/7.7.2/solr-7.7.2-src.tgz.asc)] [[SHA512](https://www.apache.org/dist/lucene/solr/7.7.2/solr-7.7.2-src.tgz.sha512)]
- - Binary releases:  [solr-7.7.2.tgz](https://www.apache.org/dyn/closer.lua/lucene/solr/7.7.2/solr-7.7.2.tgz) [[PGP](https://www.apache.org/dist/lucene/solr/7.7.2/solr-7.7.2.tgz.asc)] [[SHA512](https://www.apache.org/dist/lucene/solr/7.7.2/solr-7.7.2.tgz.sha512)] / [solr-7.7.2.zip](https://www.apache.org/dyn/closer.lua/lucene/solr/7.7.2/solr-7.7.2.zip) [[PGP](https://www.apache.org/dist/lucene/solr/7.7.2/solr-7.7.2.zip.asc)] [[SHA512](https://www.apache.org/dist/lucene/solr/7.7.2/solr-7. [...]
- - [Change log](https://lucene.apache.org/solr/7_7_2/changes/Changes.html)
-
-## Solr Reference Guide
-
-[Download the official docuentation](https://lucene.apache.org/solr/guide/)
-
-## Past versions ##
-
-Archives for all past versions of Solr are available at
-[the Apache archives](https://archive.apache.org/dist/lucene/solr/).
-
-## About downloads ##
-
-### Verify downloads ###
-
-The above release files should be verified using the PGP signatures and the
-[project release KEYS](https://www.apache.org/dist/lucene/KEYS). See
-[verification instructions](https://www.apache.org/dyn/closer.cgi#verify) for a
-description of using the PGP and KEYS files for verification. SHA checksums
-are also provided as alternative verification method.
-
-### File names ###
-
-The `solr-VERSION.zip` or `solr-VERSION.tgz` files (where `VERSION` is the version number of
-the release, e.g. `8.1.1`) contain Apache Solr, html documentation and a tutorial.
-
-The `solr-VERSION-src.tgz` file contains the full source code for that version.
-
-### About versions and support ###
-
-Apache Solr is under active development with frequent feature releases on the current major version.
-The **previous** major version may still receive security- and bug fixes as point releases, thus taking the role
-of the LTS (Long Term Support) version.
-Older versions are considered EOL (End Of Life) and will not be further
-updated. For this reason it may also be difficult to obtain community support for EOL versions.
-
-Large changes or changes that break compatibility with existing
-functionality are normally only included in the **next** major version.
-
-<table>
-<tr align=left><th>Version</th><th>Description</th></tr>
-<tr align=left><td>8.x</td><td>Current major version for feature releases (STABLE)</td></tr>
-<tr align=left><td>7.7.x</td><td>Version in the previous major release for bugfixes only (LTS)</td></tr>
-<tr align=left><td>9.0</td><td>Next major version, yet to be released (UNSTABLE)</td></tr>
-<tr align=left><td><7.7</td><td>All older versions are End Of Life (EOL)</td></tr>
-</table>
-
-For more about versions and upgrading Solr, see the
-[Reference Guide chapter “Upgrade Notes”](https://lucene.apache.org/solr/guide/solr-upgrade-notes.html) and ["System Requirements"](https://lucene.apache.org/solr/guide/solr-system-requirements.html).
+Official releases are usually created when the [developers]({filename}/pages/whoweare.md)
+feel there are sufficient changes, improvements and bug fixes to warrant a release.
+Due to the voluntary nature of Solr, no releases are scheduled in advance.
diff --git a/content/pages/solr/features.md b/content/pages/solr/features.md
index ccf6ae2..fcd7884 100644
--- a/content/pages/solr/features.md
+++ b/content/pages/solr/features.md
@@ -1,913 +1,4 @@
 Title: Features
-URL: solr/
+URL: solr/features.html
 save_as: solr/features.html
-template: solr/full-width
-
-<section class="hero alternate">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Apache Solr<sup>&trade;</sup> 8.3.0
-      </div>
-      <h1>
-        Solr Features
-      </h1>
-      <p>
-        Solr is a standalone enterprise search server with a REST-like API. You put
-        documents in it (called "indexing") via JSON, XML, CSV or binary over HTTP. You query it via HTTP GET and receive JSON, XML, CSV or binary results.
-      </p>
-      <div class="down-arrow"><a data-scroll href="#top"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray col-4 offset-small" id="top">
-  <div class="row">
-    <ul class="small-block-grid-1 medium-block-grid-3">
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_advanced_full-text_search.svg"/></div>
-          <div class="content">
-            <h3>Advanced Full-Text Search Capabilities</h3>
-            <p>Powered by Lucene<sup>&trade;</sup>, Solr enables powerful matching capabilities including phrases, wildcards, joins, grouping and much more across any data type</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_optimized_for_high_volume.svg"/></div>
-          <div class="content">
-            <h3>Optimized for High Volume Traffic</h3>
-            <p>Solr is proven at extremely large scales the world over</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_standards_based_open_interfaces.svg"/></div>
-          <div class="content">
-            <h3>Standards Based Open Interfaces - XML, JSON and HTTP</h3>
-            <p>Solr uses the tools you use to make application building a snap</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_comprehensive_html_admin.svg"/></div>
-          <div class="content">
-            <h3>Comprehensive Administration Interfaces</h3>
-            <p>Solr ships with a built-in, responsive administrative user interface to make it easy to control your Solr instances</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_server_statistics_exposed.svg"/></div>
-          <div class="content">
-            <h3>Easy Monitoring</h3>
-            <p>Need more insight into your instances? Solr publishes loads of metric data via JMX</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_highy_scalable.svg"/></div>
-          <div class="content">
-            <h3>Highly Scalable and Fault Tolerant</h3>
-            <p>Built on the battle-tested Apache Zookeeper, Solr makes it easy to scale up and down.  Solr bakes in replication, distribution, rebalancing and fault tolerance out of the box.</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_flexible_and_adaptable.svg"/></div>
-          <div class="content">
-            <h3>Flexible and Adaptable with easy configuration</h3>
-            <p>Solr's is designed to adapt to your needs all while simplifying configuration</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_real-time.svg"/></div>
-          <div class="content">
-            <h3>Near Real-Time Indexing</h3>
-            <p>Want to see your updates now?  Solr takes advantage of Lucene's Near Real-Time Indexing capabilities to make sure you see your content when you want to see it</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_extensible_plugin.svg"/></div>
-          <div class="content">
-            <h3>Extensible Plugin Architecture</h3>
-            <p>Solr publishes many well-defined extension points that make it easy to plugin both index and query time plugins.  Of course, since it is Apache-licensed open source, you can change any code you want!</p>
-          </div>
-        </div>
-      </li>
-    </ul>
-  </div>
-</section>
-
-<section class="hero alternate">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        More Features
-      </div>
-      <h1>
-        Everything but the kitchen sink.
-      </h1>
-      <p>
-        Solr uses the Lucene search library and extends it.
-      </p>
-      <div class="down-arrow"><a data-scroll href="#more"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray col-4 offset-small" id="more">
-  <div class="row">
-    <ul class="small-block-grid-2 medium-block-grid-3">
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_schemaless.svg"></div>
-          <div class="content">
-            <h3>Schema when you want, schemaless when you don't</h3>
-            <p>Use Solr's data-driven schemaless mode when getting started and then lock it down when it's time for production.</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_powerful_extensions.svg"/></div>
-          <div class="content">
-            <h3>Powerful Extensions</h3>
-            <p>Solr ships with optional plugins for indexing rich content (e.g. PDFs, Word), language detection, search results clustering and more</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_faceted_search.svg"/></div>
-          <div class="content">
-            <h3>Faceted Search and Filtering</h3>
-            <p>Slice and dice your data as you see fit using a large array of faceting algorithms</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_geospatial_search.svg"/></div>
-          <div class="content">
-            <h3>Geospatial Search</h3>
-            <p>Enabling location-based search is simple with Solr's built-in support for spatial search</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_advanced,_configurable_text.svg"/></div>
-          <div class="content">
-            <h3>Advanced Configurable Text Analysis</h3>
-            <p>Solr ships with support for most of the widely spoken languages in the world (English, Chinese, Japanese, German, French and many more) and many other analysis tools
-            designed to make indexing and querying your content as flexible as possible</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_highly_configurable.svg"/></div>
-          <div class="content">
-            <h3>Highly Configurable and User Extensible Caching</h3>
-            <p>Fine-grained controls on Solr's built-in caches make it easy to optimize performance</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_performance_optimizations.svg"/></div>
-          <div class="content">
-            <h3>Performance Optimizations</h3>
-            <p>Solr has been tuned to handle the world's largest sites</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_security.svg"></div>
-          <div class="content">
-            <h3>Security built right in</h3>
-            <p>Secure Solr with SSL, Authentication and Role based Authorization. Pluggable, of course!</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_an_ajax_based.svg"/></div>
-          <div class="content">
-            <h3>Advanced Storage Options</h3>
-            <p>Building on Lucene's advanced storage capabilities (codecs, directories and more), Solr makes it easy to tune
-            your data storage needs to fit your application</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_monitorable_logging.svg"/></div>
-          <div class="content">
-            <h3>Monitorable Logging</h3>
-            <p>Easily access Solr's log files from the admin interface</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_fast_near_real-time.svg"/></div>
-          <div class="content">
-            <h3>Query Suggestions, Spelling and More</h3>
-            <p>Solr ships with advanced capabilites for auto-complete (typeahead search), spell checking and more</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_easy_ways_to_pull_in_data.svg"/></div>
-          <div class="content">
-            <h3>Your Data, Your Way!</h3>
-            <p>JSON, CSV, XML and more are supported out of the box.  Don't waste precious time converting all your data to a common representation, just send it to Solr!</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_rich_document.svg"/></div>
-          <div class="content">
-            <h3>Rich Document Parsing</h3>
-            <p>Solr ships with Apache Tika built-in, making it easy to index rich content such as Adobe PDF, Microsoft Word and more.</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_apache_uima.svg"/></div>
-          <div class="content">
-            <h3>Apache UIMA</h3>
-            <p>Ready to enhance your content with advanced annotation engines?  Solr integrates into Apache UIMA, making it easy to leverage NLP and other tools as part of your application.</p>
-          </div>
-        </div>
-      </li>
-      <li>
-        <div class="box">
-          <div class="img"><img src="{static}/images/solr/Solr_Icons_multiple_search_indices.svg"/></div>
-          <div class="content">
-            <h3>Multiple search indices</h3>
-            <p>Solr supports multi-tenant architectures, making it easy to isolate users and content.</p>
-          </div>
-        </div>
-      </li>
-    </ul>
-  </div>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Data Handling</h1>
-      <p>
-        Schema or schemaless, easily define the field types, analysis processes and document structures to make your search application successful
-      </p>
-      <div class="down-arrow"><a data-scroll href="#data-handling"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="data-handling">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Schemaless (data-driven schema) makes it easy to get started, while switching to a configured schema makes for a solid production environment.
-          <p>Solr supports both schemaless and schema modes, depending on your goals</p>
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Solr's Field Types make it easy to declaratively mix and match Lucene Analyzers without writing code
-          <ul>
-            <li>char filters edit the text prior to tokenization</li>
-            <li>tokenizers break the text up into terms</li>
-            <li>token filters transform the terms</li>
-          </ul>
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Dynamic Fields enable on-the-fly addition of new fields that auto-map to field types based on the field name
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Easily analyze the same content in different ways using Solr's copy field capabilities
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Explicit types eliminate the need for guessing types of fields and introducing noise
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>External file-based configuration of stopword lists, synonym lists, and protected word lists
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Many additional text analysis components including word splitting, regex, stemming and more
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Extensible to allow for applications to easily handle proprietary formats and unsupported data types
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/documents-fields-and-schema-design.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Docs, Fields &amp; Schema Design</a>
-      <div>
-    </div>
-  </ul>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Query</h1>
-      <p>
-        HTTP interfaces with flexible IO formats and extensive query parsing support make adding and finding data a snap
-      </p>
-      <div class="down-arrow"><a data-scroll href="#query"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="query">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>REST interfaces provide for easy integration with any language.
-          <p>Native clients are also available</p>
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Sort by any number of fields, and by complex functions of numeric fields
-          <p>Documents with missing values can be configured to sort last (or first)
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Function queries provide powerful relevance tuning capabilities based off of your data
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Advanced relevance tuning options enable applications to fine tune results to fit their demanding needs
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Solr supports multiple approaches to query parsing, making it easy to find your data
-        <p>Dozens of query types (boolean, phrase, term, numeric, fielded and more) provide incredible power when searching</p>
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Good out of the box defaults make getting great results easy, while extensive configuration options make it easy to fine tune
-        <p>Request handling can easily be configured to provide server-side control and simplification of how applications request results</p>
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Extensive filtering features allow applications to control what content is searched and when
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Multiple scoring (similarity) approaches allow for easy experimentation and relevance tuning
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Pluggable query parsers mean every application can provide a query interface that makes sense to its users
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Well-defined APIs for capturing document and collection level statistics enable custom similarity models with little effort</li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Cursors (aka "deep paging") enables next generation NoSQL data storage and analysis options
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Near Real Time (NRT) search allows access to document addition and updates almost immediately</li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/searching.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Searching</a>
-      <div>
-    </div>
-  </ul>
-</section>
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Facets</h1>
-      <p>
-        Slice and dice your data six ways from Sunday
-      </p>
-      <div class="down-arrow"><a data-scroll href="#facets"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="facets">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Powerful faceting features support grouping and organizing your data in a multitude of ways
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Pivot faceting enables asking sophisticated "what if" questions
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Fine-grained performance controls make it possible to tradeoff competing CPU and memory resources during faceting
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Term, Query, Range, Date and Pivot faceting implementations make data investigation simple and powerful
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Range faceting enables grouping time and numerical content in easy to understand buckets
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Query-based faceting makes it easy to facet by arbitrary queries
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Multi-select facet parameters enable exact control over how facets interact with the original result set
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/faceting.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Faceting</a>
-      <div>
-    </div>
-  </ul>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Discovery</h1>
-      <p>
-        Clustering, spellchecking, auto-complete and more make it easy to help users discover content
-      </p>
-      <div class="down-arrow"><a data-scroll href="#discovery"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="discovery">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Typeahead, autocomplete, auto-suggest, whatever you call it, Solr supports powerful and extensible mechanisms for providing suggestions to users as they type in their queries
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Integrated Carrot<sup>2</sup> features enable dynamic search results clustering
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Spelling suggestions are a breeze to enable to help users correct their queries for better results
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Configurable hit highlighting helps users focus in on exactly where matches occur
-        </li>
-      </div>
-    </div>
-    <br />
-    <div class="row">
-      <ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-4">
-        <li>
-          <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/suggester.html"
-            ><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Suggester</a>
-        </li>
-        <li>
-          <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/result-clustering.html"
-            ><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Clustering</a>
-        </li>
-        <li>
-          <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/spell-checking.html"
-            ><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Spellcheck</a>
-        </li>
-        <li>
-          <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/highlighting.html"
-            ><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Highlighting</a>
-        </li>
-      </ul>
-    </div>
-  </ul>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Plugins and Extensions</h1>
-      <p>
-        Open source and well-documented make Solr highly extensible
-      </p>
-      <div class="down-arrow"><a data-scroll href="#plugins"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="plugins">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Plugins for language detection, clustering, data-import, UIMA, Apache Velocity and more provide optional functionality when needed
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Well-defined extension points for indexing, analysis, request handling, query parsing and more make focused extensions easy to write and enable
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>An open source and open development approach, enabled by the Apache Software Foundation, make contributions to Solr easy to do
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Don't like how Solr implements something? Found a bug?  Check out the code from SVN or Git and make changes as you see fit.  Patches welcome!
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="btn1" href="http://wiki.apache.org/solr/HowToContribute">How to contribute</a>
-      <div>
-    </div>
-  </ul>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Statistics and Aggregations</h1>
-      <p>
-
-      </p>
-      <div class="down-arrow"><a data-scroll href="#stats"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="stats">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Solr supports complex mathematical analysis on result sets, enabling next-generation search-based business intelligence
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Grouping, nesting and other approaches enable applications to represent complex relationships between content types
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Function query results can be returned with hits, and used to sort or boost hits
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Field Statistics can be combined with nested Pivot Faceting
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>The stats component can compute min, max, sum, mean, distinct values, and more
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/the-stats-component.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> The Stats Component</a>
-      <div>
-    </div>
-  </ul>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Spatial</h1>
-      <p>
-        Location-aware search using advanced spatial integrations
-      </p>
-      <div class="down-arrow"><a data-scroll href="#spatial"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="spatial">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Out of the box support for location-aware search (think mobile search) enables applications to find and filter content based on location
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Extensive support for representing complex spatial data like polygons, lat/lon and more
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Advanced query capabilities allow for bounding box, polygonal and other complex querying capabilities
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Integration with the Java Topological Suite library provides advanced spatial capabilities
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/spatial-search.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Spatial Search</a>
-      <div>
-    </div>
-  </ul>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Rich Content</h1>
-      <p>
-        Your Data, your way.  PDF, Word, Powerpoint and more
-      </p>
-      <div class="down-arrow"><a data-scroll href="#rich-content"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="rich-content">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Integration with <a href="http://tika.apache.org">Apache Tika</a> enables the extraction and processing of rich content types without writing a single line of code
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Data not in JSON?  No problem.  Solr handles a variety of data types out of the box, including JSON, XML, many Office documents, CSV and more
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Flexible and extensible Input and Output formats allow your application to talk with Solr the way you want to talk to it
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Advanced processing options make it easy to control what extracted content is indexed and how it is indexed
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/indexing-and-basic-data-operations.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Indexing &amp; Basic Data Operations</a>
-      <div>
-    </div>
-  </ul>
-</section>
-
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Performance</h1>
-      <p>
-        Proven time and time again in world-class organizations, Solr performs and scales to handle the most demanding applications
-      </p>
-      <div class="down-arrow"><a data-scroll href="#performance"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="performance">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Well tested defaults provide good performance out of the box with little tuning
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Advanced options give fine grained control over numerous performance aspects
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Powerful single-node and distributed capabilities simplify the process of going from one node to many
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>A multitude of smart caching options enable exacting control over repetitive results a breeze
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Always built on the latest and greatest Lucene, Solr takes advantage of numerous Lucene performance enhancements
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Support for codecs, alternate Directory implementations and more provide for advanced performance tuning options
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/the-well-configured-solr-instance.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> The Well-Configured Solr Instance</a>
-      <div>
-    </div>
-  </ul>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Scaling</h1>
-      <p>
-        Highly scalable, fault tolerant distributed infrastructure built on Apache Zookeeper
-      </p>
-      <div class="down-arrow"><a data-scroll href="#solrcloud"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="solrcloud">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Add and remove compute capacity as needed, while letting Solr do the dirty work of load balancing and more
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Shard splitting makes it easy to incrementally add capacity without re-indexing your entire content
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Built on tried and true Apache Zookeeper, Solr favors consistency and avoids hairy split brain issues common to other approaches
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Built-in User Interfaces provide deep insight into cluster state
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Advanced transaction log, replication and failover capabilities help minimize data loss while still serving results
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Tested regularly at scale to handle hundreds to thousands of compute nodes and billions of documents with very high query volumes
-        </li>
-      </div>
-    </div>
-    <!-- TODO: LINK TO SOLR CLOUD TUTORIAL -->
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/solrcloud.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> SolrCloud</a>
-      <div>
-    </div>
-  </ul>
-</section>
-
-<section class="orange">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Detailed Features
-      </div>
-      <h1>Admin Interface</h1>
-      <p>
-        A rich and powerful User Interface enables deep insight into Solr's state all without anything extra to install
-      </p>
-      <div class="down-arrow"><a data-scroll href="#admin-ui"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray list" id="admin-ui">
-  <ul>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Extensive reporting and control interfaces make it easy to understand and alter what is happening in Solr
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Modern, responsive Javascript-based implementation provides instant feedback
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Gain insight into cores, collections, shards and more
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Explore logs, threads and system properties without ever leaving the browser
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Want to explore alternate queries?  Try the query interface and instantly explore your data without having to write code
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Explore and debug your data and queries with advanced interfaces for analysis, data exploration and more
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="small-6 columns">
-        <li>Index content directly from the browser, including rich content via file uploading
-        </li>
-      </div>
-      <div class="small-6 columns">
-        <li>Instantly review key performance metrics right in the browser
-        </li>
-      </div>
-    </div>
-    <div class="row">
-      <div class="centered">
-        <a class="wrappable-btn" href="https://lucene.apache.org/solr/guide/using-the-solr-administration-user-interface.html"><span class="ref-guide-badge">Solr<br />Ref<br />Guide</span> Using the Solr Admin UI</a>
-      <div>
-    </div>
-  </ul>
-</section>
+template: solr/features
diff --git a/content/pages/solr/guide.md b/content/pages/solr/guide.md
index 9beb1a3..60a2673 100644
--- a/content/pages/solr/guide.md
+++ b/content/pages/solr/guide.md
@@ -1,6 +1,6 @@
 Title: Solr Reference Guide
-URL: solr/
-save_as: solr/guide.html
+URL: solr/guide/index.html
+save_as: solr/guide/index.html
 template: solr/page
 Notice:    Licensed to the Apache Software Foundation (ASF) under one
            or more contributor license agreements.  See the NOTICE file
diff --git a/content/pages/solr/index.md b/content/pages/solr/index.md
index 98e86d4..5d968f2 100644
--- a/content/pages/solr/index.md
+++ b/content/pages/solr/index.md
@@ -1,5 +1,5 @@
 Title:
-URL: solr/
+URL: solr/index.html
 save_as: solr/index.html
 template: solr/index
 slug: solr-index
diff --git a/content/pages/solr/logos-and-assets.md b/content/pages/solr/logos-and-assets.md
index 3c27550..53d5d15 100644
--- a/content/pages/solr/logos-and-assets.md
+++ b/content/pages/solr/logos-and-assets.md
@@ -1,67 +1,4 @@
 Title: Logos and Assets
-URL: solr/
+URL: solr/logos-and-assets.html
 save_as: solr/logos-and-assets.html
-template: solr/full-width
-
-<section class="hero alternate">
-  <div class="row">
-    <div class="large-12 columns">
-      <div class="annotation">
-        Apache Solr<sup>&trade;</sup> 8.3.0
-      </div>
-      <h1>Solr Logos and Assets</h1>
-      <p>Solr's identity system: a style guide, icons, and logos</p>
-      <div class="down-arrow"><a data-scroll href="#top"><i class="fa fa-angle-down fa-2x red"></i></a></div>
-    </div>
-  </div>
-</section>
-
-<section class="gray offset-small" id="top"></section>
-<section class="gray">
-  <div class="row">
-    <div class="small-12 columns">
-      <h3 class="asset-download">Download the <a href="{static}/images/solr/identity/Solr_Styleguide.pdf">Solr Style Guide</a> (PDF format)</h3>
-      <h3 class="asset-download">Download the <a href="{static}/images/solr/identity/Solr_Icons.pdf">Solr Icons</a> (editable PDF format)</h3>
-    </div>
-  </div>
-</section>
-
-<section class="gray col-4">
-  <div class="row">
-    <ul class="small-block-grid-1 medium-block-grid-3">
-      <li>
-        <div class="box logo-box">
-          <h3>Solr logo on orange</h3>
-          <p>PNG format, 1692x855</p>
-          <div class="img logo-container orange-background">
-            <img class="resizeable-solr-logo" alt="Solr Logo on orange (PNG format, 1692x855)"
-                 src="{static}/images/solr/identity/Solr_Logo_on_orange.png"/>
-          </div>
-          <br />
-          <p>Download editable PDF format <a href="{static}/images/solr/identity/Solr_Logo_on_orange.pdf">here</a></p>
-      </li>
-      <li>
-        <div class="box logo-box">
-          <h3 class="fixed-wrap-point-logo-title">Solr logo on white</h3>
-          <p>PNG format, 1692x855</p>
-          <div class="img logo-container white-background">
-            <img class="resizeable-solr-logo" alt="Solr Logo on white (PNG format, 1692x855)"
-                 src="{static}/images/solr/identity/Solr_Logo_on_white.png"/>
-          </div>
-          <br />
-          <p>Download editable PDF format <a href="{static}/images/solr/identity/Solr_Logo_on_white.pdf">here</a></p>
-      </li>
-      <li>
-        <div class="box logo-box">
-          <h3 class="fixed-wrap-point-logo-title">Solr logo on black</h3>
-          <p>PNG format, 1692x855</p>
-          <div class="img" style="background-color:#000; padding:20px; height:auto; width:auto">
-            <img class="resizeable-solr-logo" alt="Solr Logo on black (PNG format, 1692x855)"
-                 src="{static}/images/solr/identity/Solr_Logo_on_black.png"/>
-          </div>
-          <br />
-          <p>Download editable PDF format <a href="{static}/images/solr/identity/Solr_Logo_on_black.pdf">here</a></p>
-      </li>
-    </div>
-  </div>
-</section>
+template: solr/logos-and-assets
diff --git a/content/pages/solr/news.md b/content/pages/solr/news.md
index 1456438..bbc7c46 100644
--- a/content/pages/solr/news.md
+++ b/content/pages/solr/news.md
@@ -1,4 +1,4 @@
 Title: Solr News
-URL: solr/
+URL: solr/news.html
 save_as: solr/news.html
 template: solr/news
diff --git a/content/pages/solr/quickstart.md b/content/pages/solr/quickstart.md
index 1a68319..6e0a8fa 100644
--- a/content/pages/solr/quickstart.md
+++ b/content/pages/solr/quickstart.md
@@ -1,6 +1,6 @@
 Title: Quickstart
-URL: solr/
-save_as: solr/quickstart.html
+URL: solr/guide/solr-tutorial.html
+save_as: solr/guide/solr-tutorial.html
 template: solr/page
 
 <!-- As of 2 Oct 2017, this page now automatically redirects to
diff --git a/content/pages/solr/resources.md b/content/pages/solr/resources.md
index 05e6c3e..39b3ea1 100644
--- a/content/pages/solr/resources.md
+++ b/content/pages/solr/resources.md
@@ -1,55 +1,8 @@
 Title: Resources
-URL: solr/
+URL: solr/resources.html
 save_as: solr/resources.html
 template: solr/resources
 
-## Tutorials ##
-
-* [Solr Quick Start](/solr/guide/solr-tutorial.html)
-
-<!--
-* More to come: Ideas include "Solr in a Day", "Solr and JSON", "Solr and CSV", "Solr and XML"
--->
-
-Users who have completed the tutorial are encouraged to review the [other documentation available](#documentation).
-
-***
-
-## Documentation ##
-
-
-<h3 class="offset" id="the-apache-solr-reference-guide">The Apache Solr Reference Guide</h3>
-
-Beginning with Solr 4.4, a detailed reference guide is available online or as a PDF download.
-<!--
-Do not add a version# to the text label for ref guide download unless there is a clear mechanism to maintain it.
-The template 8.3.0 is tied directly to the code release version and so can not be
-used for ref guide release version unless we either 1. guarantee code and ref guide release to happen together, always or
-2. Make the change here explicitly as part of the ref guide release process to reflect ref guide .
--->
-
-* [Official PDF Reference Guide for Solr](https://www.apache.org/dyn/closer.lua/lucene/solr/ref-guide/)
-
-* [HTML Version of the Reference Guide](/solr/guide)
-
-* [Visual Guide to Streaming Expressions and Math Expressions](http://bit.ly/32srTpA)
-
-* [Previous Releases](http://archive.apache.org/dist/lucene/solr/ref-guide/)
-
-
-<h3 class="offset" id="javadocs">Solr Javadocs</h3>
-
-Solr generates JavaDocs for all included code in each release.
-Copies of this documentation for every release can be found online:
-
-* [Latest Release](/solr/8_3_0/index.html)
-
-<h3 class="offset" id="additional-documentation">Additional Documentation</h3>
-
-Additional documentation can be found on the [Solr Community Wiki](http://wiki.apache.org/solr) or the various [books published about Solr](#solr-books).
-
-***
-
 ## Community ##
 
 This section has been moved to a new <a href="community.html">Solr Community</a> page.
diff --git a/content/pages/whoweare.md b/content/pages/whoweare.md
index 1ad41e2..48c9162 100644
--- a/content/pages/whoweare.md
+++ b/content/pages/whoweare.md
@@ -1,7 +1,7 @@
 Title: Who we are
-URL:
+URL: whoweare.html
 save_as: whoweare.html
-template: lucene-tlp/page
+template: lucene/tlp/page
 
 ## Lucene<span style="vertical-align: super; font-size: xx-small">TM</span>/Solr<span style="vertical-align: super; font-size: xx-small">TM</span> Committers
 - *[Namgyu Kim](https://www.linkedin.com/in/danmuzi)* (namgyu@...)
diff --git a/pelicanconf.py b/pelicanconf.py
index 34bdafe..015925a 100644
--- a/pelicanconf.py
+++ b/pelicanconf.py
@@ -1,11 +1,17 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*- #
 from __future__ import unicode_literals
+from datetime import datetime
 
 AUTHOR = 'Lucene and Solr Developers'
 SITENAME = 'Apache Lucene'
+SITESUBTITLE = ''
 SITEURL = ''
 
+LUCENE_LATEST_RELEASE = '8.3.0'
+LUCENE_LATEST_RELEASE_DATE = datetime(2019, 11, 2)
+LUCENE_PREVIOUS_MAJOR_RELEASE = '7.7.2'
+
 PATH = 'content'
 
 THEME = 'themes/lucene'
@@ -62,6 +68,8 @@ LINKS = (('Pelican', 'http://getpelican.com/'),
 SOCIAL = (('You can add links in your config file', '#'),
           ('Another social link', '#'),)
 
+GOOGLE_ANALYTICS_TRACKING_ID = 'UA-94576-12'
+
 DEFAULT_PAGINATION = False
 
 # Uncomment following line if you want document-relative URLs when developing
diff --git a/themes/lucene/static/css/lucene-core/global.css b/themes/lucene/static/css/lucene-core/global.css
deleted file mode 100644
index d55a76c..0000000
--- a/themes/lucene/static/css/lucene-core/global.css
+++ /dev/null
@@ -1,1138 +0,0 @@
-/**********************************
- The Apache Software Foundation
-
-Derived from: Open for Business Project Website
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*********************************/
-
-/********************************
- Global Reset
-********************************/
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
-    border:0;
-    margin:0;
-    outline:0;
-    padding:0;
-    background:transparent;
-    vertical-align: baseline;
-}
-
-blockquote, q {
-    quotes: none;
-}
-
-blockquote:before,
-blockquote:after,
-q:before,
-q:after {
-    content:'';
-    content: none;
-}
-
-a, address, body, caption, cite, code, dfn, em, strong, th, var {
-    font-style: normal;
-    font-weight: normal;
-    text-decoration: none;
-}
-
-strong {
-    font-weight: bold;
-}
-
-em {
-    font-style: italic;
-}
-
-a img {
-    border: none;
-}
-
-ol, ul {
-    list-style: none;
-}
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
-
-/********************************
- General Layout
-********************************/
-* {margin:0;padding:0;}
-
-html, body, #wrap {height: 100%;}
-
-body > #wrap {height: auto; min-height: 100%;}
-
-body {
-    font: 13px/ 165% "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: black;
-	margin: 0;
-	padding: 0;
-	background: url(/theme/images/lucene-core/bg.png) top left repeat-x #A6A6A6;
-	text-align: center;
-}
-
-.clearfix:after {
-    content: ".";
-    display: block;
-    height: 0;
-    clear: both;
-    visibility: hidden;
-}
-
-.clearfix {
-    display: inline-block;
-}
-
-html[xmlns] .clearfix {
-    display: block;
-}
-
-* html .clearfix {
-    height: 1%;
-}
-
-.clearfix {
-    display: block;
-}
-
-.clearLeft {
-    clear:left;
-}
-
-/********************************
- Typography
-********************************/
-a,a:active,a:link {
-	text-decoration: none;
-	color: #29456b;
-	background: #EEFFE0;
-	border: 1px solid #FFFFFF;
-}
-
-a:visited {
-	text-decoration: none;
-	background: #EEFFE0;
-	border: 1px solid #FFFFFF;
-}
-
-a:hover {
-	color: #030d1c;
-	background: #EEFFE0;
-	border: 1px solid #9DED9D;
-}
-
-h1,h2,h3 {
-	font-family: "Trebuchet MS", Tahoma, Arial, Sans-serif;
-	color: #555;
-}
-
-h1 {
-  	font-size: 150%;
-	color: #895F30;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h2 {
-	font-size: 170%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h3 {
-	font-size: 130%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-p,dl {
-	padding: 10px;
-	margin: 0;
-}
-
-ul{
-	margin: 10px 10px;
-	padding: 0 0 0 10px;
-}
-
-ul {
-	list-style: none;
-}
-
-ol {
-	margin: 10px 30px;
-	padding: 0;
-}
-
-dt {
-	font-weight: bold;
-	color: #b13f1a;
-}
-
-dd {
-	padding-left: 25px;
-}
-
-/********************************
- /theme/images/lucene-core
-********************************/
-img {
-    border: none;
-}
-
-p img {
-    background: #fafafa;
-       border: 1px solid #dcdcdc;
-    padding: 5px;
-    margin:0 10px 0 0;
-}
-
-img.float-right {
-    margin: 5px 0px 10px 10px;
-}
-
-img.float-left {
-    margin: 5px 10px 10px 0px;
-}
-
-/********************************
- Code Snippets and Quotes
-********************************/
-code {
-    padding: 2px 4px;
-    text-align: left;
-    overflow: auto;
-    font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace;
-    /* white-space: pre; */
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-    border-radius: 4px;
-}
-
-acronym {
-    cursor: help;
-    border-bottom: 1px dotted #895F30;
-}
-
-blockquote {
-    margin: 15px 10px;
-    padding: 10px 10px 10px 35px;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/lucene-core/quote.jpg) no-repeat 10px 10px;
-    font-weight: normal;
-    font-size: 1.5em;
-    line-height: 1.5em;
-    font-style: italic;
-    font-family: "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #976957;
-}
-
-/********************************
- Tables
-********************************/
-table {
-	border-collapse: collapse;
-	margin: 15px 10px;
-}
-
-th {
-	background: #d14b1f url(/theme/images/lucene-core/header-bg.jpg) repeat-x 0 -100px;
-	height: 38px;
-	padding-left: 12px;
-	padding-right: 12px;
-	color: #fff;
-	text-align: left;
-	border-left: 1px solid #d14b1f;
-	border-bottom: solid 2px #fff;
-}
-
-tr {
-	height: 34px;
-}
-
-td {
-	padding-left: 11px;
-	padding-right: 11px;
-}
-
-/********************************
- Forms
-********************************/
-input,select {
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    color: #666666;
-    background: #fff;
-}
-
-textarea {
-    width: 400px;
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    height: 100px;
-    display: block;
-    color: #666666;
-}
-
-input,textarea,select {
-    background: #fff;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #D4D4D4 #ebebeb #ebebeb #d4d4d4;
-}
-
-input.button {
-    font: bold 12px Arial, Sans-serif;
-    height: 30px;
-    margin: 0;
-    padding: 2px 3px;
-    color: #555;
-    background: #E6E6E6;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #ebebeb #d4d4d4 #d4d4d4 #ebebeb;
-}
-
-/********************************
- Generic Classes
-********************************/
-.float-left {
-    float: left;
-}
-
-.float-right {
-    float: right;
-}
-
-.align-left {
-    text-align: left;
-}
-
-.align-right {
-    text-align: right;
-}
-
-.clearer {
-    clear: both;
-}
-
-/********************************
- Page Layout
-********************************/
-#wrap{
-    background: #fff url(/theme/images/lucene-core/wrapper.jpg) top center no-repeat;
-    width: 945px;
-	margin: 0 auto;
-    text-align:left;
-}
-
-#content-wrap  {
-    width:945px;
-	margin:0 auto;
-    padding-bottom: 42px;
-}
-
-#content {
-    width:500px;
-	float:left;
-	padding:30px 0 25px 0;
-}
-
-/********************************
- Footer
-********************************/
-#footer {
-  position: relative;
-	height: 100px;
-	clear:both;
-	font-size:11px;
-	font-family:Verdana, Arial, sans-serif;
-  width:945px;
-  border-top: 1px solid #eee;
-  background-color:#FFFFFF;
-}
-
-#foot {
-    text-align:left;
-    position:relative;
-    top:5px;
-    left:30px;
-}
-
-/********************************
- Header
-********************************/
-#header {
-    position: relative;
-    width: 945px;
-    height: 100px;
-    padding: 0;
-    margin: 0 auto;
-    background: transparent;
-}
-
-#header #logo {
-    position: absolute;
-    top: 15px;
-    left: 20px;
-    height: 42px;
-    width: 405px;
-}
-
-#header #logo a,img {
-    background: none;
-    border: none;
-}
-
-#header #controls {
-    position: absolute;
-    top: 60px;
-    right: 32px;
-    height: 42px;
-    color: #1b78d7;
-    font-size: 12px;
-    background: url(/theme/images/lucene-core/house.gif) top right no-repeat;
-    padding-right: 20px;
-    text-align: right;
-}
-
-#header #controls a {
-    position: relative;
-    top: -2px;
-}
-
-#header #language {
-    position: absolute;
-    top: 10px;
-    right: 32px;
-    height: 42px;
-    color: #797c7e;
-    text-align: right;
-}
-
-/********************************
- Search
-********************************/
-#search {
-    position:absolute;
-    top:0px;
-    right:0px;
-    background:url(/theme/images/lucene-core/search.gif) center left no-repeat;
-	padding:5px;
-	padding-top:4px;
-    padding-left:33px;
-	border-radius:3px;
-	background-color:#444;
-}
-
-.hintText {
-      display: none;
-}
-
-.fieldWithHint {
-      color: #001f2f;
-}
-
-/********************************
- Top Navigation
-********************************/
-#nav {
-    position: absolute;
-    clear: both;
-    margin: 0;
-    padding: 0;
-	padding-right:5px;
-	padding-left:5px;
-	right:0px;
-    height: 34px;
-    top: 92px;
-	border-radius:3px;
-    z-index: 99999;
-	background-color:#444;
-}
-
-#nav ul {
-    float: left;
-    list-style: none;
-    height: 32px;
-    margin: 0;
-    padding: 0;
-    display: inline;
-    background:#444;
-}
-
-#nav ul li {
-    display: inline;
-    margin: 0;
-    padding: 0;
-    background:#444;
-}
-
-#nav ul li a {
-    float: left;
-    margin: 0 0 0 0;
-    padding: 0px 15px 0px 15px;
-    font: normal 14px/ 34px "Trebuchet MS", Helvetica, Arial, Geneva, sans-serif;
-    font-variant: small-caps;
-    text-decoration: none;
-    letter-spacing: 0.0px;
-    color: #fff;
-    border: none;
-	border-right:1px inset #888;
-    background: #444;
-}
-
-#nav ul li a.last {
-	border-right:none;
-}
-
-#nav ul li a:hover,#nav ul li a:active {
-    color: #111;
-    background-image: url(/theme/images/lucene-core/header_hot.jpg) !important;
-}
-
-#nav ul li#current a {
-    color: #333333;
-    background-image: url(/theme/images/lucene-core/header_hot.jpg) !important;
-}
-
-/********************************
- Content Sections
-********************************/
-#main {
-    float: left;
-    width: 700px;
-    padding: 0;
-    margin: 0 0 0 20px;
-    display: inline;
-}
-
-#main h1 {
-	padding-bottom: 3px;
-	margin-top: 15px;
-	font: normal 3em "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: #333;
-	letter-spacing: -2px;
-	text-transform: none;
-	border-bottom: 1px solid #ebebeb;
-}
-
-#main h1 a {
-	color: #333;
-	text-decoration: none;
-	background: none;
-	border: none;
-}
-
-#main ul li {
-    list-style-image: url(/theme/images/lucene-core/bullet.gif);
-}
-
-#col1 {
-    float: left;
-    width: 260px;
-    padding: 0;
-    margin: 20px 0 0 20px;
-    display: inline;
-}
-
-#col2 {
-    float: left;
-    width: 260px;
-    padding: 0;
-    margin: 20px 0 0 20px;
-    display: inline;
-}
-
-#col1 h1, #col2 h1 {
-    padding-bottom: 3px;
-    margin-top: 15px;
-    font: normal 3em "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #666;
-    letter-spacing: -2px;
-    text-transform: none;
-    border-bottom: 1px solid #ebebeb;
-}
-
-#main #col1 h1, #main #col2 h1 {
-	border-bottom: 1px solid #ebebeb;
-	color:#304C70;
-	padding-bottom: 3px;
-	letter-spacing: -3px;
-	text-transform: none;
-	font-size:30px;
-}
-
-.feature {
-	margin:0px;
-	padding:0px;
-	height:435px;
-}
-
-.screen {
-	margin:10px 0 5px 0;
-	padding:0px;
-	background:#fff;
-	border:1px solid #eee;
-	width:255px;
-	height:200px;
-	overflow:hidden;
-}
-
-#main .hero {
-	margin:10px 0 5px 0;
-	padding:0px;
-	background:#fff;
-	border:1px solid #eee;
-	width:555px;
-}
-
-#main .highlights {
-	float:right;
-	width:240px;
-	background:#dfe9ef;
-	border:1px solid #eee;
-	margin:0px 10px 0px 5px;
-	display:inline;
-}
-
-#main .highlights ul li {
-    list-style-image: url(/theme/images/lucene-core/highlight-bullet.gif);
-}
-
-#main .highlights h4 {
-	padding:5px 5px 0 5px;
-}
-
-#sidebar {
-    float: right;
-    width: 200px;
-    padding: 0;
-    margin: 15px 20px 0 0;
-    display: inline;
-}
-
-#sidebar h2 {
-    margin-top: 10px;
-    padding: 15px 5px 3px 5px;
-    font: normal 2em 'trebuchet MS', Tahoma, Helvetica, Arial, sans-serif;
-    color: #666666;
-    letter-spacing: -.5px;
-}
-
-#sidebar ul.sidemenu {
-    text-align: left;
-    margin: 0px 5px 8px 0px;
-    padding: 5px 0 0 0;
-    text-decoration: none;
-    background: url(/theme/images/lucene-core/dots.gif) repeat-x left top;
-}
-
-#sidebar ul.sidemenu li {
-    list-style: none;
-    background: url(dots.gif) repeat-x left bottom;
-    padding: 4px 10px;
-    margin: 0;
-}
-
-* html body #sidebar ul.sidemenu li {
-    height: 1%;
-}
-
-#sidebar ul.sidemenu li a {
-    text-decoration: none;
-    background-image: none;
-    background-color: transparent;
-    border: none;
-    color: #304c70;
-    font-weight: bold;
-    font-family: "Trebuchet MS", Tahoma, Helvetica, Arial, Sans-serif;
-    font-size: 14px;
-    /* letter-spacing: .5px;  */
-}
-
-#sidebar ul.sidemenu li a span {
-    color: #989898;
-    font-family: Georgia, "Times New Roman", Times, serif;
-    font-style: italic;
-    font-weight: normal;
-    font-size: .8em;
-}
-
-#sidebar ul.sidemenu li a:hover {
-    color: #555;
-}
-
-#sidebar ul.sidemenu ul {
-    margin: 0 0 0 5px;
-    padding: 0;
-}
-
-#sidebar ul.sidemenu ul li {
-    background: none;
-}
-
-#sidebar .indentfirst {
-    margin-left:0px;
-}
-
-#sidebar .indentsecond {
-    margin-left:20px;
-}
-
-.status-item {
-    margin-left: 20px;
-}
-
-
-/********************************
- Content Styles
-********************************/
-.postmeta {
-    padding: 5px;
-    margin: 20px 10px 15px 10px;
-    font-size: 1em;
-    color: #777;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-}
-
-.postmeta .date {
-    margin: 0 10px 0 5px;
-}
-
-.postmeta a.comments {
-    margin: 0 10px 0 5px;
-}
-
-.postmeta a.readmore {
-    margin: 0 10px 0 5px;
-}
-
-.post-info {
-    font-size: .95em;
-    padding-top: 3px;
-    margin-left: 5px;
-    color: #bababa;
-}
-
-.post-info a {
-    color: #C5935C;
-}
-
-p.thumbs {
-    padding: 12px 0 0 10px;
-}
-
-.thumbs img {
-    position: relative;
-    border: 1px solid #ebebeb;
-    background: none;
-    padding: 4px;
-    margin: 5px;
-    /* margin: 4px 7px 4px 4px; */
-}
-
-.thumbs img:hover {
-    border: 1px solid #c5c5c5;
-    background: none;
-}
-
-.thumbs a:hover {
-    background-color: transparent;
-    border: none
-}
-
-/********************************
- Page Specific Styles
-********************************/
-/*HOME*/
-body#home #wrap {
-	position: relative;
-	width: 945px;
-	margin: 0 auto;
-	text-align: left;
-}
-
-body#home #header {
-	position: relative;
-	width: 945px;
-	height: 403px;
-	padding: 0;
-	margin: 0 auto;
-	background: transparent;
-}
-
-body#home #header #slides {
-	position: absolute;
-	top: 126px;
-	left: 0px;
-	width: 945px;
-	height: 260px;
-  background-color: #C4E0BA;
-  -webkit-border-top-left-radius: 30px;
-  -moz-border-radius-topleft: 30px;
-  border-top-left-radius: 30px;
-}
-
-body#home #header #slides .slideshow {
-	width:945px;
-	height:260px;
-	margin:0px;
-	padding:0px;
-}
-
-body#home #header #slides .callout {
-	position: absolute;
-	top: 25px;
-	left: 30px;
-	font-size: 30px;
-	line-height: 30px;
-	color: #2b1f48;
-}
-
-body#home #header #slides .descwrapper {
-	position: absolute;
-	top: 175px;
-	font-size: 14px;
-  background-color: #2B2A38;
-	width: 945px;
-  height: 85px;
-}
-
-body#home #header #slides .description {
-	position: absolute;
-	top: 175px;
-	left: 30px;
-	font-size: 14px;
-	line-height: 15px;
-	color: #e0e0e0;
-	width: 350px;
-}
-
-body#home #header #slides .descwrapper .description {
-	position: relative;
-	top: 15px;
-	left: 20px;
-	font-size: 14px;
-	line-height: 18px;
-	color: #e0e0e0;
-	width: 380px;
-}
-
-
-body#home #header #slides .controls {
-	width: 100px;
-	position: absolute;
-	top: 15px;
-	left: 750px;
-	height:30px;
-}
-
-body#home #header #slides .controls a {
-	border: none;
-	position:absolute;
-	height:30px;
-	line-height:24px;
-	padding:5px;
-	text-indent:-9999px;
-	outline:none;
-}
-
-body#home #header #slides .controls a.previous {
-	background: url(/theme/images/lucene-core/backward.gif) top center no-repeat;
-	left:0px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.next {
-	background: url(/theme/images/lucene-core/forward.gif) top center no-repeat;
-	left:60px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.stop {
-	background: url(/theme/images/lucene-core/pause.gif) top center no-repeat;
-	left:30px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.start {
-	background: url(/theme/images/lucene-core/start.gif) top center no-repeat;
-	left:30px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a img {
-	background: none;
-	border: none;
-	cursor: pointer;
-}
-
-body#home #header #slides .mantle{
-	position:absolute;
-	top:45px;
-	left:360px;
-}
-
-body#home #col1 {
-	float: left;
-	width: 260px;
-	padding: 0;
-	margin: 5px 0 0 0px;
-	display: inline;
-}
-
-body#home #col2 {
-	float: left;
-	width: 260px;
-	padding: 0;
-	margin: 5px 0 0 20px;
-	display: inline;
-}
-
-.downloadNow {
-	margin:30px 0 10px 0;
-}
-
-.downloadLinks span.docs {
-	float:left;
-	margin:0px 0px 0 0;
-	display:inline;
-}
-
-.downloadLinks span.previousVersions {
-	float:right;
-	margin:0px 20px 0 0;
-	display:inline;
-}
-
-/*SUBPAGE - NO SIDEBAR*/
-body#full #wrap {
-	position: relative;
-	background: #fff url(/theme/images/lucene-core/full-wrapper.jpg) top center no-repeat;
-	width: 945px;
-	margin: 0 auto;
-	text-align: left;
-}
-
-.section-content{
-    border-bottom: 1px black solid;
-}
-
-div.cmd{
-    background:  #d3d3d3;
-    display: block;
-    white-space: pre;
-    vertical-align: middle;
-    width: 99%;
-    padding-left: 5px;
-    padding-bottom: 0px;
-    padding-right: 5px;
-    padding-top: 0px;
-}
-
-code.inline{
-    font: 0.9em;
-    display: inline;
-    margin: 0px 0;
-    padding: 0px;
-    font-weight: bold;
-    background-color: white;
-    border-color: white;
-}
-
-
-/* DOWNLOAD BUTTONS */
-
-.download-desc {
-	color: gray;
-	font-size: 10px;
-	margin-top: 5px;
-	margin-bottom: 10px;
-	margin-left: 10px;
-}
-
-.button-wrapper {
-	width: 200px;
-  margin-top: 3px;
-	margin-bottom: 5px;
-}
-
-.button-orange a {
-	border: 2px solid black;
-	z-index: 1;
-	position: relative;
-	display: block;
-	height: 50px;
-	width: 200px;
-	/*TYPE*/
-	color: black;
-	font: 24px/50px Helvetica, Verdana, sans-serif;
-        font-weight: bold;
-	text-decoration: none;
-	text-align: center;
-	text-transform: uppercase;
-	/*GRADIENT*/
-	background: #D9411E !important; /* Old browsers */
-	background: -moz-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important;
-	/* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #C8BEB4) !important,
-		color-stop(100%, #D9411E) ); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important;
-	/* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #C8BEB4 0%, #D9411E 100%)important;
-	/* Opera 11.10+ */
-	background: -ms-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) important;;
-	/* IE10+ */
-	background: linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important; /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#C8BEB4',
-		endColorstr='#D9411E', GradientType=0 ); /* IE6-9 */
-}
-
-.button-green a {
-	border: 2px solid black;
-	z-index: 1;
-	position: relative;
-	display: block;
-	height: 50px;
-	width: 200px;
-	/*TYPE*/
-	color: black;
-	font: 24px/50px Helvetica, Verdana, sans-serif;
-        font-weight: bold;
-	text-decoration: none;
-	text-align: center;
-	text-transform: uppercase;
-	/*GRADIENT*/
-	background: #14A800 !important; /* Old browsers */
-	background: -moz-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #89FA7A) !important,
-		color-stop(100%, #1AA807) ); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* Opera 11.10+ */
-	background: -ms-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* IE10+ */
-	background: linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important; /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#14A800',
-		endColorstr='#1AA807', GradientType=0 ); /* IE6-9 */
-}
-
-.button-orange a,.flap {
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	-moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-}
-
-.button-green a,.flap {
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	-moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-}
-
-.flap {
-	background: #222;
-	display: block;
-	height: 40px;
-	width: 180px;
-	margin: -50px 0 0 10px;
-	/*TYPE*/
-	text-align: center;
-	font: 12px/45px Helvetica, Verdana, sans-serif;
-	color: #fff;
-	/*POSITION*/
-	position: absolute;
-	z-index: 0;
-	/*TRANSITION*/
-	-webkit-transition: all 0.5s ease;
-	-moz-transition: all 0.5s ease;
-	-o-transition: all 0.5s ease;
-	-ms-transition: all 0.5s ease;
-	transition: all 0.5s ease;
-}
-
-/*HOVER*/
-.button-orange:hover .bottom {
-	margin: -10px 0 0 10px;
-}
-
-.button-green:hover .bottom {
-	margin: -10px 0 0 10px;
-}
-
-.button-orange:hover .top {
-	margin: -80px 0 0 10px;
-	line-height: 35px;
-}
-
-.button-green:hover .top {
-	margin: -80px 0 0 10px;
-	line-height: 35px;
-}
-
-/*ACTIVE*/
-.button-orange a:active {
-	background: #D9411E; /* Old browsers */
-}
-
-.button-green a:active {
-	background: #14A800; /* Old browsers */
-}
-
-.button-orange:active .bottom {
-	margin: -20px 0 0 10px;
-}
-
-.button-green:active .bottom {
-	margin: -20px 0 0 10px;
-}
-
-.button-orange:active .top {
-	margin: -70px 0 0 10px;
-}
-
-.button-green:active .top {
-	margin: -70px 0 0 10px;
-}
diff --git a/themes/lucene/static/css/lucene-tlp/global.css b/themes/lucene/static/css/lucene-tlp/global.css
deleted file mode 100644
index 1e2d26d..0000000
--- a/themes/lucene/static/css/lucene-tlp/global.css
+++ /dev/null
@@ -1,1138 +0,0 @@
-/**********************************
- The Apache Software Foundation
-
-Derived from: Open for Business Project Website
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*********************************/
-
-/********************************
- Global Reset
-********************************/
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
-    border:0;
-    margin:0;
-    outline:0;
-    padding:0;
-    background:transparent;
-    vertical-align: baseline;
-}
-
-blockquote, q {
-    quotes: none;
-}
-
-blockquote:before,
-blockquote:after,
-q:before,
-q:after {
-    content:'';
-    content: none;
-}
-
-a, address, body, caption, cite, code, dfn, em, strong, th, var {
-    font-style: normal;
-    font-weight: normal;
-    text-decoration: none;
-}
-
-strong {
-    font-weight: bold;
-}
-
-em {
-    font-style: italic;
-}
-
-a img {
-    border: none;
-}
-
-ol, ul {
-    list-style: none;
-}
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
-
-/********************************
- General Layout
-********************************/
-* {margin:0;padding:0;}
-
-html, body, #wrap {height: 100%;}
-
-body > #wrap {height: auto; min-height: 100%;}
-
-body {
-    font: 13px/ 165% "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: black;
-	margin: 0;
-	padding: 0;
-	background: url(/theme/images/lucene-tlp/bg.png) top left repeat-x #A6A6A6;
-	text-align: center;
-}
-
-.clearfix:after {
-    content: ".";
-    display: block;
-    height: 0;
-    clear: both;
-    visibility: hidden;
-}
-
-.clearfix {
-    display: inline-block;
-}
-
-html[xmlns] .clearfix {
-    display: block;
-}
-
-* html .clearfix {
-    height: 1%;
-}
-
-.clearfix {
-    display: block;
-}
-
-.clearLeft {
-    clear:left;
-}
-
-/********************************
- Typography
-********************************/
-a,a:active,a:link {
-	text-decoration: none;
-	color: #29456b;
-	background: #EEFFE0;
-	border: 1px solid #FFFFFF;
-}
-
-a:visited {
-	text-decoration: none;
-	background: #EEFFE0;
-	border: 1px solid #FFFFFF;
-}
-
-a:hover {
-	color: #030d1c;
-	background: #EEFFE0;
-	border: 1px solid #9DED9D;
-}
-
-h1,h2,h3 {
-	font-family: "Trebuchet MS", Tahoma, Arial, Sans-serif;
-	color: #555;
-}
-
-h1 {
-  	font-size: 150%;
-	color: #895F30;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h2 {
-	font-size: 170%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h3 {
-	font-size: 130%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-p,dl {
-	padding: 10px;
-	margin: 0;
-}
-
-ul{
-	margin: 10px 10px;
-	padding: 0 0 0 10px;
-}
-
-ul {
-	list-style: none;
-}
-
-ol {
-	margin: 10px 30px;
-	padding: 0;
-}
-
-dt {
-	font-weight: bold;
-	color: #b13f1a;
-}
-
-dd {
-	padding-left: 25px;
-}
-
-/********************************
- /theme/images
-********************************/
-img {
-    border: none;
-}
-
-p img {
-    background: #fafafa;
-       border: 1px solid #dcdcdc;
-    padding: 5px;
-    margin:0 10px 0 0;
-}
-
-img.float-right {
-    margin: 5px 0px 10px 10px;
-}
-
-img.float-left {
-    margin: 5px 10px 10px 0px;
-}
-
-/********************************
- Code Snippets and Quotes
-********************************/
-code {
-    padding: 2px 4px;
-    text-align: left;
-    overflow: auto;
-    font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace;
-    /* white-space: pre; */
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-    border-radius: 4px;
-}
-
-acronym {
-    cursor: help;
-    border-bottom: 1px dotted #895F30;
-}
-
-blockquote {
-    margin: 15px 10px;
-    padding: 10px 10px 10px 35px;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/lucene-tlp/quote.jpg) no-repeat 10px 10px;
-    font-weight: normal;
-    font-size: 1.5em;
-    line-height: 1.5em;
-    font-style: italic;
-    font-family: "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #976957;
-}
-
-/********************************
- Tables
-********************************/
-table {
-	border-collapse: collapse;
-	margin: 15px 10px;
-}
-
-th {
-	background: #d14b1f url(/theme/images/lucene-tlp/header-bg.jpg) repeat-x 0 -100px;
-	height: 38px;
-	padding-left: 12px;
-	padding-right: 12px;
-	color: #fff;
-	text-align: left;
-	border-left: 1px solid #d14b1f;
-	border-bottom: solid 2px #fff;
-}
-
-tr {
-	height: 34px;
-}
-
-td {
-	padding-left: 11px;
-	padding-right: 11px;
-}
-
-/********************************
- Forms
-********************************/
-input,select {
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    color: #666666;
-    background: #fff;
-}
-
-textarea {
-    width: 400px;
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    height: 100px;
-    display: block;
-    color: #666666;
-}
-
-input,textarea,select {
-    background: #fff;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #D4D4D4 #ebebeb #ebebeb #d4d4d4;
-}
-
-input.button {
-    font: bold 12px Arial, Sans-serif;
-    height: 30px;
-    margin: 0;
-    padding: 2px 3px;
-    color: #555;
-    background: #E6E6E6;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #ebebeb #d4d4d4 #d4d4d4 #ebebeb;
-}
-
-/********************************
- Generic Classes
-********************************/
-.float-left {
-    float: left;
-}
-
-.float-right {
-    float: right;
-}
-
-.align-left {
-    text-align: left;
-}
-
-.align-right {
-    text-align: right;
-}
-
-.clearer {
-    clear: both;
-}
-
-/********************************
- Page Layout
-********************************/
-#wrap{
-    background: #fff url(/theme/images/lucene-tlp/wrapper.jpg) top center no-repeat;
-    width: 945px;
-	margin: 0 auto;
-    text-align:left;
-}
-
-#content-wrap  {
-    width:945px;
-	margin:0 auto;
-    padding-bottom: 42px;
-}
-
-#content {
-    width:500px;
-	float:left;
-	padding:30px 0 25px 0;
-}
-
-/********************************
- Footer
-********************************/
-#footer {
-  position: relative;
-	height: 100px;
-	clear:both;
-	font-size:11px;
-	font-family:Verdana, Arial, sans-serif;
-  width:945px;
-  border-top: 1px solid #eee;
-  background-color:#FFFFFF;
-}
-
-#foot {
-    text-align:left;
-    position:relative;
-    top:5px;
-    left:30px;
-}
-
-/********************************
- Header
-********************************/
-#header {
-    position: relative;
-    width: 945px;
-    height: 100px;
-    padding: 0;
-    margin: 0 auto;
-    background: transparent;
-}
-
-#header #logo {
-    position: absolute;
-    top: 15px;
-    left: 20px;
-    height: 42px;
-    width: 405px;
-}
-
-#header #logo a,img {
-    background: none;
-    border: none;
-}
-
-#header #controls {
-    position: absolute;
-    top: 60px;
-    right: 32px;
-    height: 42px;
-    color: #1b78d7;
-    font-size: 12px;
-    background: url(/theme/images/lucene-tlp/house.gif) top right no-repeat;
-    padding-right: 20px;
-    text-align: right;
-}
-
-#header #controls a {
-    position: relative;
-    top: -2px;
-}
-
-#header #language {
-    position: absolute;
-    top: 10px;
-    right: 32px;
-    height: 42px;
-    color: #797c7e;
-    text-align: right;
-}
-
-/********************************
- Search
-********************************/
-#search {
-    position:absolute;
-    top:0px;
-    right:0px;
-    background:url(/theme/images/lucene-tlp/search.gif) center left no-repeat;
-	padding:5px;
-	padding-top:4px;
-    padding-left:33px;
-	border-radius:3px;
-	background-color:#444;
-}
-
-.hintText {
-      display: none;
-}
-
-.fieldWithHint {
-      color: #001f2f;
-}
-
-/********************************
- Top Navigation
-********************************/
-#nav {
-    position: absolute;
-    clear: both;
-    margin: 0;
-    padding: 0;
-	padding-right:5px;
-	padding-left:5px;
-	right:0px;
-    height: 34px;
-    top: 92px;
-	border-radius:3px;
-    z-index: 99999;
-	background-color:#444;
-}
-
-#nav ul {
-    float: left;
-    list-style: none;
-    height: 32px;
-    margin: 0;
-    padding: 0;
-    display: inline;
-    background:#444;
-}
-
-#nav ul li {
-    display: inline;
-    margin: 0;
-    padding: 0;
-    background:#444;
-}
-
-#nav ul li a {
-    float: left;
-    margin: 0 0 0 0;
-    padding: 0px 15px 0px 15px;
-    font: normal 14px/ 34px "Trebuchet MS", Helvetica, Arial, Geneva, sans-serif;
-    font-variant: small-caps;
-    text-decoration: none;
-    letter-spacing: 0.0px;
-    color: #fff;
-    border: none;
-	border-right:1px inset #888;
-    background: #444;
-}
-
-#nav ul li a.last {
-	border-right:none;
-}
-
-#nav ul li a:hover,#nav ul li a:active {
-    color: #111;
-    background-image: url(/theme/images/lucene-tlp/header_hot.jpg) !important;
-}
-
-#nav ul li#current a {
-    color: #333333;
-    background-image: url(/theme/images/lucene-tlp/header_hot.jpg) !important;
-}
-
-/********************************
- Content Sections
-********************************/
-#main {
-    float: left;
-    width: 700px;
-    padding: 0;
-    margin: 0 0 0 20px;
-    display: inline;
-}
-
-#main h1 {
-	padding-bottom: 3px;
-	margin-top: 15px;
-	font: normal 3em "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: #333;
-	letter-spacing: -2px;
-	text-transform: none;
-	border-bottom: 1px solid #ebebeb;
-}
-
-#main h1 a {
-	color: #333;
-	text-decoration: none;
-	background: none;
-	border: none;
-}
-
-#main ul li {
-    list-style-image: url(/theme/images/lucene-tlp/bullet.gif);
-}
-
-#col1 {
-    float: left;
-    width: 260px;
-    padding: 0;
-    margin: 20px 0 0 20px;
-    display: inline;
-}
-
-#col2 {
-    float: left;
-    width: 260px;
-    padding: 0;
-    margin: 20px 0 0 20px;
-    display: inline;
-}
-
-#col1 h1, #col2 h1 {
-    padding-bottom: 3px;
-    margin-top: 15px;
-    font: normal 3em "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #666;
-    letter-spacing: -2px;
-    text-transform: none;
-    border-bottom: 1px solid #ebebeb;
-}
-
-#main #col1 h1, #main #col2 h1 {
-	border-bottom: 1px solid #ebebeb;
-	color:#304C70;
-	padding-bottom: 3px;
-	letter-spacing: -3px;
-	text-transform: none;
-	font-size:30px;
-}
-
-.feature {
-	margin:0px;
-	padding:0px;
-	height:435px;
-}
-
-.screen {
-	margin:10px 0 5px 0;
-	padding:0px;
-	background:#fff;
-	border:1px solid #eee;
-	width:255px;
-	height:200px;
-	overflow:hidden;
-}
-
-#main .hero {
-	margin:10px 0 5px 0;
-	padding:0px;
-	background:#fff;
-	border:1px solid #eee;
-	width:555px;
-}
-
-#main .highlights {
-	float:right;
-	width:240px;
-	background:#dfe9ef;
-	border:1px solid #eee;
-	margin:0px 10px 0px 5px;
-	display:inline;
-}
-
-#main .highlights ul li {
-    list-style-image: url(/theme/images/lucene-tlp/highlight-bullet.gif);
-}
-
-#main .highlights h4 {
-	padding:5px 5px 0 5px;
-}
-
-#sidebar {
-    float: right;
-    width: 200px;
-    padding: 0;
-    margin: 15px 20px 0 0;
-    display: inline;
-}
-
-#sidebar h2 {
-    margin-top: 10px;
-    padding: 15px 5px 3px 5px;
-    font: normal 2em 'trebuchet MS', Tahoma, Helvetica, Arial, sans-serif;
-    color: #666666;
-    letter-spacing: -.5px;
-}
-
-#sidebar ul.sidemenu {
-    text-align: left;
-    margin: 0px 5px 8px 0px;
-    padding: 5px 0 0 0;
-    text-decoration: none;
-    background: url(/theme/images/lucene-tlp/dots.gif) repeat-x left top;
-}
-
-#sidebar ul.sidemenu li {
-    list-style: none;
-    background: url(dots.gif) repeat-x left bottom;
-    padding: 4px 10px;
-    margin: 0;
-}
-
-* html body #sidebar ul.sidemenu li {
-    height: 1%;
-}
-
-#sidebar ul.sidemenu li a {
-    text-decoration: none;
-    background-image: none;
-    background-color: transparent;
-    border: none;
-    color: #304c70;
-    font-weight: bold;
-    font-family: "Trebuchet MS", Tahoma, Helvetica, Arial, Sans-serif;
-    font-size: 14px;
-    /* letter-spacing: .5px;  */
-}
-
-#sidebar ul.sidemenu li a span {
-    color: #989898;
-    font-family: Georgia, "Times New Roman", Times, serif;
-    font-style: italic;
-    font-weight: normal;
-    font-size: .8em;
-}
-
-#sidebar ul.sidemenu li a:hover {
-    color: #555;
-}
-
-#sidebar ul.sidemenu ul {
-    margin: 0 0 0 5px;
-    padding: 0;
-}
-
-#sidebar ul.sidemenu ul li {
-    background: none;
-}
-
-#sidebar .indentfirst {
-    margin-left:0px;
-}
-
-#sidebar .indentsecond {
-    margin-left:20px;
-}
-
-.status-item {
-    margin-left: 20px;
-}
-
-
-/********************************
- Content Styles
-********************************/
-.postmeta {
-    padding: 5px;
-    margin: 20px 10px 15px 10px;
-    font-size: 1em;
-    color: #777;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-}
-
-.postmeta .date {
-    margin: 0 10px 0 5px;
-}
-
-.postmeta a.comments {
-    margin: 0 10px 0 5px;
-}
-
-.postmeta a.readmore {
-    margin: 0 10px 0 5px;
-}
-
-.post-info {
-    font-size: .95em;
-    padding-top: 3px;
-    margin-left: 5px;
-    color: #bababa;
-}
-
-.post-info a {
-    color: #C5935C;
-}
-
-p.thumbs {
-    padding: 12px 0 0 10px;
-}
-
-.thumbs img {
-    position: relative;
-    border: 1px solid #ebebeb;
-    background: none;
-    padding: 4px;
-    margin: 5px;
-    /* margin: 4px 7px 4px 4px; */
-}
-
-.thumbs img:hover {
-    border: 1px solid #c5c5c5;
-    background: none;
-}
-
-.thumbs a:hover {
-    background-color: transparent;
-    border: none
-}
-
-/********************************
- Page Specific Styles
-********************************/
-/*HOME*/
-body#home #wrap {
-	position: relative;
-	width: 945px;
-	margin: 0 auto;
-	text-align: left;
-}
-
-body#home #header {
-	position: relative;
-	width: 945px;
-	height: 403px;
-	padding: 0;
-	margin: 0 auto;
-	background: transparent;
-}
-
-body#home #header #slides {
-	position: absolute;
-	top: 126px;
-	left: 0px;
-	width: 945px;
-	height: 260px;
-  background-color: #C4E0BA;
-  -webkit-border-top-left-radius: 30px;
-  -moz-border-radius-topleft: 30px;
-  border-top-left-radius: 30px;
-}
-
-body#home #header #slides .slideshow {
-	width:945px;
-	height:260px;
-	margin:0px;
-	padding:0px;
-}
-
-body#home #header #slides .callout {
-	position: absolute;
-	top: 25px;
-	left: 30px;
-	font-size: 30px;
-	line-height: 30px;
-	color: #2b1f48;
-}
-
-body#home #header #slides .descwrapper {
-	position: absolute;
-	top: 175px;
-	font-size: 14px;
-  background-color: #2B2A38;
-	width: 945px;
-  height: 85px;
-}
-
-body#home #header #slides .description {
-	position: absolute;
-	top: 175px;
-	left: 30px;
-	font-size: 14px;
-	line-height: 15px;
-	color: #e0e0e0;
-	width: 350px;
-}
-
-body#home #header #slides .descwrapper .description {
-	position: relative;
-	top: 15px;
-	left: 20px;
-	font-size: 14px;
-	line-height: 18px;
-	color: #e0e0e0;
-	width: 380px;
-}
-
-
-body#home #header #slides .controls {
-	width: 100px;
-	position: absolute;
-	top: 15px;
-	left: 750px;
-	height:30px;
-}
-
-body#home #header #slides .controls a {
-	border: none;
-	position:absolute;
-	height:30px;
-	line-height:24px;
-	padding:5px;
-	text-indent:-9999px;
-	outline:none;
-}
-
-body#home #header #slides .controls a.previous {
-	background: url(/theme/images/lucene-tlp/backward.gif) top center no-repeat;
-	left:0px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.next {
-	background: url(/theme/images/lucene-tlp/forward.gif) top center no-repeat;
-	left:60px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.stop {
-	background: url(/theme/images/lucene-tlp/pause.gif) top center no-repeat;
-	left:30px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.start {
-	background: url(/theme/images/lucene-tlp/start.gif) top center no-repeat;
-	left:30px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a img {
-	background: none;
-	border: none;
-	cursor: pointer;
-}
-
-body#home #header #slides .mantle{
-	position:absolute;
-	top:45px;
-	left:360px;
-}
-
-body#home #col1 {
-	float: left;
-	width: 260px;
-	padding: 0;
-	margin: 5px 0 0 0px;
-	display: inline;
-}
-
-body#home #col2 {
-	float: left;
-	width: 260px;
-	padding: 0;
-	margin: 5px 0 0 20px;
-	display: inline;
-}
-
-.downloadNow {
-	margin:30px 0 10px 0;
-}
-
-.downloadLinks span.docs {
-	float:left;
-	margin:0px 0px 0 0;
-	display:inline;
-}
-
-.downloadLinks span.previousVersions {
-	float:right;
-	margin:0px 20px 0 0;
-	display:inline;
-}
-
-/*SUBPAGE - NO SIDEBAR*/
-body#full #wrap {
-	position: relative;
-	background: #fff url(/theme/images/lucene-tlp/full-wrapper.jpg) top center no-repeat;
-	width: 945px;
-	margin: 0 auto;
-	text-align: left;
-}
-
-.section-content{
-    border-bottom: 1px black solid;
-}
-
-div.cmd{
-    background:  #d3d3d3;
-    display: block;
-    white-space: pre;
-    vertical-align: middle;
-    width: 99%;
-    padding-left: 5px;
-    padding-bottom: 0px;
-    padding-right: 5px;
-    padding-top: 0px;
-}
-
-code.inline{
-    font: 0.9em;
-    display: inline;
-    margin: 0px 0;
-    padding: 0px;
-    font-weight: bold;
-    background-color: white;
-    border-color: white;
-}
-
-
-/* DOWNLOAD BUTTONS */
-
-.download-desc {
-	color: gray;
-	font-size: 10px;
-	margin-top: 5px;
-	margin-bottom: 10px;
-	margin-left: 10px;
-}
-
-.button-wrapper {
-	width: 200px;
-  margin-top: 3px;
-	margin-bottom: 5px;
-}
-
-.button-orange a {
-	border: 2px solid black;
-	z-index: 1;
-	position: relative;
-	display: block;
-	height: 50px;
-	width: 200px;
-	/*TYPE*/
-	color: black;
-	font: 24px/50px Helvetica, Verdana, sans-serif;
-        font-weight: bold;
-	text-decoration: none;
-	text-align: center;
-	text-transform: uppercase;
-	/*GRADIENT*/
-	background: #D9411E !important; /* Old browsers */
-	background: -moz-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important;
-	/* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #C8BEB4) !important,
-		color-stop(100%, #D9411E) ); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important;
-	/* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #C8BEB4 0%, #D9411E 100%)important;
-	/* Opera 11.10+ */
-	background: -ms-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) important;;
-	/* IE10+ */
-	background: linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important; /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#C8BEB4',
-		endColorstr='#D9411E', GradientType=0 ); /* IE6-9 */
-}
-
-.button-green a {
-	border: 2px solid black;
-	z-index: 1;
-	position: relative;
-	display: block;
-	height: 50px;
-	width: 200px;
-	/*TYPE*/
-	color: black;
-	font: 24px/50px Helvetica, Verdana, sans-serif;
-        font-weight: bold;
-	text-decoration: none;
-	text-align: center;
-	text-transform: uppercase;
-	/*GRADIENT*/
-	background: #14A800 !important; /* Old browsers */
-	background: -moz-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #89FA7A) !important,
-		color-stop(100%, #1AA807) ); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* Opera 11.10+ */
-	background: -ms-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* IE10+ */
-	background: linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important; /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#14A800',
-		endColorstr='#1AA807', GradientType=0 ); /* IE6-9 */
-}
-
-.button-orange a,.flap {
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	-moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-}
-
-.button-green a,.flap {
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	-moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-}
-
-.flap {
-	background: #222;
-	display: block;
-	height: 40px;
-	width: 180px;
-	margin: -50px 0 0 10px;
-	/*TYPE*/
-	text-align: center;
-	font: 12px/45px Helvetica, Verdana, sans-serif;
-	color: #fff;
-	/*POSITION*/
-	position: absolute;
-	z-index: 0;
-	/*TRANSITION*/
-	-webkit-transition: all 0.5s ease;
-	-moz-transition: all 0.5s ease;
-	-o-transition: all 0.5s ease;
-	-ms-transition: all 0.5s ease;
-	transition: all 0.5s ease;
-}
-
-/*HOVER*/
-.button-orange:hover .bottom {
-	margin: -10px 0 0 10px;
-}
-
-.button-green:hover .bottom {
-	margin: -10px 0 0 10px;
-}
-
-.button-orange:hover .top {
-	margin: -80px 0 0 10px;
-	line-height: 35px;
-}
-
-.button-green:hover .top {
-	margin: -80px 0 0 10px;
-	line-height: 35px;
-}
-
-/*ACTIVE*/
-.button-orange a:active {
-	background: #D9411E; /* Old browsers */
-}
-
-.button-green a:active {
-	background: #14A800; /* Old browsers */
-}
-
-.button-orange:active .bottom {
-	margin: -20px 0 0 10px;
-}
-
-.button-green:active .bottom {
-	margin: -20px 0 0 10px;
-}
-
-.button-orange:active .top {
-	margin: -70px 0 0 10px;
-}
-
-.button-green:active .top {
-	margin: -70px 0 0 10px;
-}
diff --git a/themes/lucene/static/css/lucene-core/core.css b/themes/lucene/static/css/lucene/core.css
similarity index 92%
rename from themes/lucene/static/css/lucene-core/core.css
rename to themes/lucene/static/css/lucene/core.css
index 59849f8..a11d508 100644
--- a/themes/lucene/static/css/lucene-core/core.css
+++ b/themes/lucene/static/css/lucene/core.css
@@ -94,7 +94,7 @@ body {
 	color: black;
 	margin: 0;
 	padding: 0;
-	background: url(/theme/images/lucene-core/bg.png) top left repeat-x #A6A6A6;
+	background: url(/theme/images/lucene/bg.png) top left repeat-x #A6A6A6;
 	text-align: center;
 }
 
@@ -204,7 +204,7 @@ dd {
 
 /********************************
  /theme/images
-lucene-core/********************************/
+lucene/********************************/
 img {
     border: none;
 }
@@ -248,7 +248,7 @@ blockquote {
     margin: 15px 10px;
     padding: 10px 10px 10px 35px;
     border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/lucene-core/quote.jpg) no-repeat 10px 10px;
+    background: #ECF8FE url(/theme/images/lucene/quote.jpg) no-repeat 10px 10px;
     font-weight: normal;
     font-size: 1.5em;
     line-height: 1.5em;
@@ -266,7 +266,7 @@ table {
 }
 
 th {
-	background: #d14b1f url(/theme/images/lucene-core/header-bg.jpg) repeat-x 0 -100px;
+	background: #d14b1f url(/theme/images/lucene/header-bg.jpg) repeat-x 0 -100px;
 	height: 38px;
 	padding-left: 12px;
 	padding-right: 12px;
@@ -350,7 +350,7 @@ input.button {
  Page Layout
 ********************************/
 #wrap{
-    background: #fff url(/theme/images/lucene-core/wrapper.jpg) top center no-repeat;
+    background: #fff url(/theme/images/lucene/wrapper.jpg) top center no-repeat;
     width: 945px;
 	margin: 0 auto;
     text-align:left;
@@ -421,7 +421,7 @@ input.button {
     height: 42px;
     color: #1b78d7;
     font-size: 12px;
-    background: url(/theme/images/lucene-core/house.gif) top right no-repeat;
+    background: url(/theme/images/lucene/house.gif) top right no-repeat;
     padding-right: 20px;
     text-align: right;
 }
@@ -447,7 +447,7 @@ input.button {
     position:absolute;
     top:0px;
     right:0px;
-    background:url(/theme/images/lucene-core/search.gif) center left no-repeat;
+    background:url(/theme/images/lucene/search.gif) center left no-repeat;
 	padding:5px;
 	padding-top:4px;
     padding-left:33px;
@@ -518,12 +518,12 @@ input.button {
 
 #nav ul li a:hover,#nav ul li a:active {
     color: #111;
-    background-image: url(/theme/images/lucene-core/header_hot.jpg) !important;
+    background-image: url(/theme/images/lucene/header_hot.jpg) !important;
 }
 
 #nav ul li#current a {
     color: #333333;
-    background-image: url(/theme/images/lucene-core/header_hot.jpg) !important;
+    background-image: url(/theme/images/lucene/header_hot.jpg) !important;
 }
 
 /********************************
@@ -555,7 +555,7 @@ input.button {
 }
 
 #main ul li {
-    list-style-image: url(/theme/images/lucene-core/bullet.gif);
+    list-style-image: url(/theme/images/lucene/bullet.gif);
 }
 
 #col1 {
@@ -627,7 +627,7 @@ input.button {
 }
 
 #main .highlights ul li {
-    list-style-image: url(/theme/images/lucene-core/highlight-bullet.gif);
+    list-style-image: url(/theme/images/lucene/highlight-bullet.gif);
 }
 
 #main .highlights h4 {
@@ -655,7 +655,7 @@ input.button {
     margin: 0px 5px 8px 0px;
     padding: 5px 0 0 0;
     text-decoration: none;
-    background: url(/theme/images/lucene-core/dots.gif) repeat-x left top;
+    background: url(/theme/images/lucene/dots.gif) repeat-x left top;
 }
 
 #sidebar ul.sidemenu li {
@@ -774,7 +774,7 @@ p.thumbs {
 /*HOME*/
 body#home #wrap {
 	position: relative;
-	background: #fff url(/theme/images/lucene-core/home-wrapper.png) top center no-repeat;
+	background: #fff url(/theme/images/lucene/home-wrapper.png) top center no-repeat;
 	width: 945px;
 	margin: 0 auto;
 	text-align: left;
@@ -863,28 +863,28 @@ body#home #header #slides .controls a {
 }
 
 body#home #header #slides .controls a.previous {
-	background: url(/theme/images/lucene-core/backward.gif) top center no-repeat;
+	background: url(/theme/images/lucene/backward.gif) top center no-repeat;
 	left:0px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.next {
-	background: url(/theme/images/lucene-core/forward.gif) top center no-repeat;
+	background: url(/theme/images/lucene/forward.gif) top center no-repeat;
 	left:60px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.stop {
-	background: url(/theme/images/lucene-core/pause.gif) top center no-repeat;
+	background: url(/theme/images/lucene/pause.gif) top center no-repeat;
 	left:30px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.start {
-	background: url(/theme/images/lucene-core/start.gif) top center no-repeat;
+	background: url(/theme/images/lucene/start.gif) top center no-repeat;
 	left:30px;
 	height:30px;
 	width:16px;
diff --git a/themes/lucene/static/css/pylucene/global.css b/themes/lucene/static/css/lucene/global.css
similarity index 93%
rename from themes/lucene/static/css/pylucene/global.css
rename to themes/lucene/static/css/lucene/global.css
index 9da1fb2..a58f56f 100644
--- a/themes/lucene/static/css/pylucene/global.css
+++ b/themes/lucene/static/css/lucene/global.css
@@ -94,7 +94,7 @@ body {
 	color: black;
 	margin: 0;
 	padding: 0;
-	background: url(/theme/images/pylucene/bg.png) top left repeat-x #A6A6A6;
+	background: url(/theme/images/lucene/bg.png) top left repeat-x #A6A6A6;
 	text-align: center;
 }
 
@@ -203,7 +203,7 @@ dd {
 }
 
 /********************************
- /theme/images/pylucene
+ /theme/images
 ********************************/
 img {
     border: none;
@@ -247,7 +247,7 @@ blockquote {
     margin: 15px 10px;
     padding: 10px 10px 10px 35px;
     border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/pylucene/quote.jpg) no-repeat 10px 10px;
+    background: #ECF8FE url(/theme/images/lucene/quote.jpg) no-repeat 10px 10px;
     font-weight: normal;
     font-size: 1.5em;
     line-height: 1.5em;
@@ -265,7 +265,7 @@ table {
 }
 
 th {
-	background: #d14b1f url(/theme/images/pylucene/header-bg.jpg) repeat-x 0 -100px;
+	background: #d14b1f url(/theme/images/lucene/header-bg.jpg) repeat-x 0 -100px;
 	height: 38px;
 	padding-left: 12px;
 	padding-right: 12px;
@@ -349,7 +349,7 @@ input.button {
  Page Layout
 ********************************/
 #wrap{
-    background: #fff url(/theme/images/pylucene/wrapper.jpg) top center no-repeat;
+    background: #fff url(/theme/images/lucene/wrapper.jpg) top center no-repeat;
     width: 945px;
 	margin: 0 auto;
     text-align:left;
@@ -420,7 +420,7 @@ input.button {
     height: 42px;
     color: #1b78d7;
     font-size: 12px;
-    background: url(/theme/images/pylucene/house.gif) top right no-repeat;
+    background: url(/theme/images/lucene/house.gif) top right no-repeat;
     padding-right: 20px;
     text-align: right;
 }
@@ -446,7 +446,7 @@ input.button {
     position:absolute;
     top:0px;
     right:0px;
-    background:url(/theme/images/pylucene/search.gif) center left no-repeat;
+    background:url(/theme/images/lucene/search.gif) center left no-repeat;
 	padding:5px;
 	padding-top:4px;
     padding-left:33px;
@@ -517,12 +517,12 @@ input.button {
 
 #nav ul li a:hover,#nav ul li a:active {
     color: #111;
-    background-image: url(/theme/images/pylucene/header_hot.jpg) !important;
+    background-image: url(/theme/images/lucene/header_hot.jpg) !important;
 }
 
 #nav ul li#current a {
     color: #333333;
-    background-image: url(/theme/images/pylucene/header_hot.jpg) !important;
+    background-image: url(/theme/images/lucene/header_hot.jpg) !important;
 }
 
 /********************************
@@ -554,7 +554,7 @@ input.button {
 }
 
 #main ul li {
-    list-style-image: url(/theme/images/pylucene/bullet.gif);
+    list-style-image: url(/theme/images/lucene/bullet.gif);
 }
 
 #col1 {
@@ -626,7 +626,7 @@ input.button {
 }
 
 #main .highlights ul li {
-    list-style-image: url(/theme/images/pylucene/highlight-bullet.gif);
+    list-style-image: url(/theme/images/lucene/highlight-bullet.gif);
 }
 
 #main .highlights h4 {
@@ -654,7 +654,7 @@ input.button {
     margin: 0px 5px 8px 0px;
     padding: 5px 0 0 0;
     text-decoration: none;
-    background: url(/theme/images/pylucene/dots.gif) repeat-x left top;
+    background: url(/theme/images/lucene/dots.gif) repeat-x left top;
 }
 
 #sidebar ul.sidemenu li {
@@ -772,6 +772,14 @@ p.thumbs {
     border: none
 }
 
+.headerlink, .elementid-permalink {
+    visibility: hidden;
+}
+
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink {
+    visibility: visible
+}
+
 /********************************
  Page Specific Styles
 ********************************/
@@ -869,28 +877,28 @@ body#home #header #slides .controls a {
 }
 
 body#home #header #slides .controls a.previous {
-	background: url(/theme/images/pylucene/backward.gif) top center no-repeat;
+	background: url(/theme/images/lucene/backward.gif) top center no-repeat;
 	left:0px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.next {
-	background: url(/theme/images/pylucene/forward.gif) top center no-repeat;
+	background: url(/theme/images/lucene/forward.gif) top center no-repeat;
 	left:60px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.stop {
-	background: url(/theme/images/pylucene/pause.gif) top center no-repeat;
+	background: url(/theme/images/lucene/pause.gif) top center no-repeat;
 	left:30px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.start {
-	background: url(/theme/images/pylucene/start.gif) top center no-repeat;
+	background: url(/theme/images/lucene/start.gif) top center no-repeat;
 	left:30px;
 	height:30px;
 	width:16px;
@@ -943,7 +951,7 @@ body#home #col2 {
 /*SUBPAGE - NO SIDEBAR*/
 body#full #wrap {
 	position: relative;
-	background: #fff url(/theme/images/pylucene/full-wrapper.jpg) top center no-repeat;
+	background: #fff url(/theme/images/lucene/full-wrapper.jpg) top center no-repeat;
 	width: 945px;
 	margin: 0 auto;
 	text-align: left;
diff --git a/themes/lucene/static/css/openrelevance/orp.css b/themes/lucene/static/css/lucene/orp.css
similarity index 91%
rename from themes/lucene/static/css/openrelevance/orp.css
rename to themes/lucene/static/css/lucene/orp.css
index a2c4ca7..54c3336 100644
--- a/themes/lucene/static/css/openrelevance/orp.css
+++ b/themes/lucene/static/css/lucene/orp.css
@@ -94,7 +94,7 @@ body {
 	color: black;
 	margin: 0;
 	padding: 0;
-	background: url(/theme/images/openrelevance/bg.png) top left repeat-x #A6A6A6;
+	background: url(/theme/images/lucene/bg.png) top left repeat-x #A6A6A6;
 	text-align: center;
 }
 
@@ -197,7 +197,7 @@ dd {
 }
 
 /********************************
- /theme/images/openrelevance
+ /theme/images/lucene
 ********************************/
 img {
     border: none;
@@ -242,7 +242,7 @@ blockquote {
     margin: 15px 10px;
     padding: 10px 10px 10px 35px;
     border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/openrelevance/quote.jpg) no-repeat 10px 10px;
+    background: #ECF8FE url(/theme/images/lucene/quote.jpg) no-repeat 10px 10px;
     font-weight: normal;
     font-size: 1.5em;
     line-height: 1.5em;
@@ -260,7 +260,7 @@ table {
 }
 
 th {
-	background: #d14b1f url(/theme/images/openrelevance/header-bg.jpg) repeat-x 0 -100px;
+	background: #d14b1f url(/theme/images/lucene/header-bg.jpg) repeat-x 0 -100px;
 	height: 38px;
 	padding-left: 12px;
 	padding-right: 12px;
@@ -344,7 +344,7 @@ input.button {
  Page Layout
 ********************************/
 #wrap{
-    background: #fff url(/theme/images/openrelevance/wrapper.jpg) top center no-repeat;
+    background: #fff url(/theme/images/lucene/wrapper.jpg) top center no-repeat;
     width: 945px;
 	margin: 0 auto;
     text-align:left;
@@ -366,7 +366,7 @@ input.button {
  Footer
 ********************************/
 #footer {
-    background: url(/theme/images/openrelevance/footer.jpg) bottom center no-repeat;
+    background: url(/theme/images/lucene/footer.jpg) bottom center no-repeat;
     position: relative;
 	margin: -50px auto 0px auto;
 	height: 50px;
@@ -416,7 +416,7 @@ input.button {
     height: 42px;
     color: #1b78d7;
     font-size: 12px;
-    background: url(/theme/images/openrelevance/house.gif) top right no-repeat;
+    background: url(/theme/images/lucene/house.gif) top right no-repeat;
     padding-right: 20px;
     text-align: right;
 }
@@ -442,7 +442,7 @@ input.button {
     position:absolute;
     top:0px;
     right:0px;
-    background:url(/theme/images/openrelevance/search.gif) center left no-repeat;
+    background:url(/theme/images/lucene/search.gif) center left no-repeat;
 	padding:5px;
 	padding-top:4px;
     padding-left:33px;
@@ -509,12 +509,12 @@ input.button {
 
 #nav ul li a:hover,#nav ul li a:active {
     color: #111;
-    background-image: url(/theme/images/openrelevance/header_hot.jpg);
+    background-image: url(/theme/images/lucene/header_hot.jpg);
 }
 
 #nav ul li#current a {
     color: #333333;
-    background-image: url(/theme/images/openrelevance/header_hot.jpg);
+    background-image: url(/theme/images/lucene/header_hot.jpg);
 }
 
 /********************************
@@ -546,7 +546,7 @@ input.button {
 }
 
 #main ul li {
-    list-style-image: url(/theme/images/openrelevance/bullet.gif);
+    list-style-image: url(/theme/images/lucene/bullet.gif);
 }
 
 #col1 {
@@ -618,7 +618,7 @@ input.button {
 }
 
 #main .highlights ul li {
-    list-style-image: url(/theme/images/openrelevance/highlight-bullet.gif);
+    list-style-image: url(/theme/images/lucene/highlight-bullet.gif);
 }
 
 #main .highlights h4 {
@@ -646,7 +646,7 @@ input.button {
     margin: 0px 5px 8px 0px;
     padding: 5px 0 0 0;
     text-decoration: none;
-    background: url(/theme/images/openrelevance/dots.gif) repeat-x left top;
+    background: url(/theme/images/lucene/dots.gif) repeat-x left top;
 }
 
 #sidebar ul.sidemenu li {
@@ -765,7 +765,7 @@ p.thumbs {
 /*HOME*/
 body#home #wrap {
 	position: relative;
-	background: #fff url(/theme/images/openrelevance/home-wrapper.png) top center no-repeat;
+	background: #fff url(/theme/images/lucene/home-wrapper.png) top center no-repeat;
 	width: 945px;
 	margin: 0 auto;
 	text-align: left;
@@ -852,28 +852,28 @@ body#home #header #slides .controls a {
 }
 
 body#home #header #slides .controls a.previous {
-	background: url(/theme/images/openrelevance/backward.gif) top center no-repeat;
+	background: url(/theme/images/lucene/backward.gif) top center no-repeat;
 	left:0px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.next {
-	background: url(/theme/images/openrelevance/forward.gif) top center no-repeat;
+	background: url(/theme/images/lucene/forward.gif) top center no-repeat;
 	left:60px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.stop {
-	background: url(/theme/images/openrelevance/pause.gif) top center no-repeat;
+	background: url(/theme/images/lucene/pause.gif) top center no-repeat;
 	left:30px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.start {
-	background: url(/theme/images/openrelevance/start.gif) top center no-repeat;
+	background: url(/theme/images/lucene/start.gif) top center no-repeat;
 	left:30px;
 	height:30px;
 	width:16px;
@@ -926,7 +926,7 @@ body#home #col2 {
 /*SUBPAGE - NO SIDEBAR*/
 body#full #wrap {
 	position: relative;
-	background: #fff url(/theme/images/openrelevance/full-wrapper.jpg) top center no-repeat;
+	background: #fff url(/theme/images/lucene/full-wrapper.jpg) top center no-repeat;
 	width: 945px;
 	margin: 0 auto;
 	text-align: left;
diff --git a/themes/lucene/static/css/pylucene/pylucene.css b/themes/lucene/static/css/lucene/pylucene.css
similarity index 91%
rename from themes/lucene/static/css/pylucene/pylucene.css
rename to themes/lucene/static/css/lucene/pylucene.css
index 3b9e734..410e86a 100644
--- a/themes/lucene/static/css/pylucene/pylucene.css
+++ b/themes/lucene/static/css/lucene/pylucene.css
@@ -94,7 +94,7 @@ body {
 	color: black;
 	margin: 0;
 	padding: 0;
-	background: url(/theme/images/pylucene/bg.png) top left repeat-x #A6A6A6;
+	background: url(/theme/images/lucene/bg.png) top left repeat-x #A6A6A6;
 	text-align: center;
 }
 
@@ -197,7 +197,7 @@ dd {
 }
 
 /********************************
- /theme/images/pylucene
+ /theme/images/lucene
 ********************************/
 img {
     border: none;
@@ -242,7 +242,7 @@ blockquote {
     margin: 15px 10px;
     padding: 10px 10px 10px 35px;
     border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/pylucene/quote.jpg) no-repeat 10px 10px;
+    background: #ECF8FE url(/theme/images/lucene/quote.jpg) no-repeat 10px 10px;
     font-weight: normal;
     font-size: 1.5em;
     line-height: 1.5em;
@@ -260,7 +260,7 @@ table {
 }
 
 th {
-	background: #d14b1f url(/theme/images/pylucene/header-bg.jpg) repeat-x 0 -100px;
+	background: #d14b1f url(/theme/images/lucene/header-bg.jpg) repeat-x 0 -100px;
 	height: 38px;
 	padding-left: 12px;
 	padding-right: 12px;
@@ -344,7 +344,7 @@ input.button {
  Page Layout
 ********************************/
 #wrap{
-    background: #fff url(/theme/images/pylucene/wrapper.jpg) top center no-repeat;
+    background: #fff url(/theme/images/lucene/wrapper.jpg) top center no-repeat;
     width: 945px;
 	margin: 0 auto;
     text-align:left;
@@ -366,7 +366,7 @@ input.button {
  Footer
 ********************************/
 #footer {
-    background: url(/theme/images/pylucene/footer.jpg) bottom center no-repeat;
+    background: url(/theme/images/lucene/footer.jpg) bottom center no-repeat;
     position: relative;
 	margin: -50px auto 0px auto;
 	height: 50px;
@@ -416,7 +416,7 @@ input.button {
     height: 42px;
     color: #1b78d7;
     font-size: 12px;
-    background: url(/theme/images/pylucene/house.gif) top right no-repeat;
+    background: url(/theme/images/lucene/house.gif) top right no-repeat;
     padding-right: 20px;
     text-align: right;
 }
@@ -442,7 +442,7 @@ input.button {
     position:absolute;
     top:0px;
     right:0px;
-    background:url(/theme/images/pylucene/search.gif) center left no-repeat;
+    background:url(/theme/images/lucene/search.gif) center left no-repeat;
 	padding:5px;
 	padding-top:4px;
     padding-left:33px;
@@ -509,12 +509,12 @@ input.button {
 
 #nav ul li a:hover,#nav ul li a:active {
     color: #111;
-    background-image: url(/theme/images/pylucene/header_hot.jpg);
+    background-image: url(/theme/images/lucene/header_hot.jpg);
 }
 
 #nav ul li#current a {
     color: #333333;
-    background-image: url(/theme/images/pylucene/header_hot.jpg);
+    background-image: url(/theme/images/lucene/header_hot.jpg);
 }
 
 /********************************
@@ -546,7 +546,7 @@ input.button {
 }
 
 #main ul li {
-    list-style-image: url(/theme/images/pylucene/bullet.gif);
+    list-style-image: url(/theme/images/lucene/bullet.gif);
 }
 
 #col1 {
@@ -618,7 +618,7 @@ input.button {
 }
 
 #main .highlights ul li {
-    list-style-image: url(/theme/images/pylucene/highlight-bullet.gif);
+    list-style-image: url(/theme/images/lucene/highlight-bullet.gif);
 }
 
 #main .highlights h4 {
@@ -646,7 +646,7 @@ input.button {
     margin: 0px 5px 8px 0px;
     padding: 5px 0 0 0;
     text-decoration: none;
-    background: url(/theme/images/pylucene/dots.gif) repeat-x left top;
+    background: url(/theme/images/lucene/dots.gif) repeat-x left top;
 }
 
 #sidebar ul.sidemenu li {
@@ -765,7 +765,7 @@ p.thumbs {
 /*HOME*/
 body#home #wrap {
 	position: relative;
-	background: #fff url(/theme/images/pylucene/home-wrapper.png) top center no-repeat;
+	background: #fff url(/theme/images/lucene/home-wrapper.png) top center no-repeat;
 	width: 945px;
 	margin: 0 auto;
 	text-align: left;
@@ -852,28 +852,28 @@ body#home #header #slides .controls a {
 }
 
 body#home #header #slides .controls a.previous {
-	background: url(/theme/images/pylucene/backward.gif) top center no-repeat;
+	background: url(/theme/images/lucene/backward.gif) top center no-repeat;
 	left:0px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.next {
-	background: url(/theme/images/pylucene/forward.gif) top center no-repeat;
+	background: url(/theme/images/lucene/forward.gif) top center no-repeat;
 	left:60px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.stop {
-	background: url(/theme/images/pylucene/pause.gif) top center no-repeat;
+	background: url(/theme/images/lucene/pause.gif) top center no-repeat;
 	left:30px;
 	height:30px;
 	width:16px;
 }
 
 body#home #header #slides .controls a.start {
-	background: url(/theme/images/pylucene/start.gif) top center no-repeat;
+	background: url(/theme/images/lucene/start.gif) top center no-repeat;
 	left:30px;
 	height:30px;
 	width:16px;
@@ -926,7 +926,7 @@ body#home #col2 {
 /*SUBPAGE - NO SIDEBAR*/
 body#full #wrap {
 	position: relative;
-	background: #fff url(/theme/images/pylucene/full-wrapper.jpg) top center no-repeat;
+	background: #fff url(/theme/images/lucene/full-wrapper.jpg) top center no-repeat;
 	width: 945px;
 	margin: 0 auto;
 	text-align: left;
diff --git a/themes/lucene/static/css/openrelevance/global.css b/themes/lucene/static/css/openrelevance/global.css
deleted file mode 100644
index 03536ac..0000000
--- a/themes/lucene/static/css/openrelevance/global.css
+++ /dev/null
@@ -1,1138 +0,0 @@
-/**********************************
- The Apache Software Foundation
-
-Derived from: Open for Business Project Website
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*********************************/
-
-/********************************
- Global Reset
-********************************/
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
-    border:0;
-    margin:0;
-    outline:0;
-    padding:0;
-    background:transparent;
-    vertical-align: baseline;
-}
-
-blockquote, q {
-    quotes: none;
-}
-
-blockquote:before,
-blockquote:after,
-q:before,
-q:after {
-    content:'';
-    content: none;
-}
-
-a, address, body, caption, cite, code, dfn, em, strong, th, var {
-    font-style: normal;
-    font-weight: normal;
-    text-decoration: none;
-}
-
-strong {
-    font-weight: bold;
-}
-
-em {
-    font-style: italic;
-}
-
-a img {
-    border: none;
-}
-
-ol, ul {
-    list-style: none;
-}
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
-
-/********************************
- General Layout
-********************************/
-* {margin:0;padding:0;}
-
-html, body, #wrap {height: 100%;}
-
-body > #wrap {height: auto; min-height: 100%;}
-
-body {
-    font: 13px/ 165% "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: black;
-	margin: 0;
-	padding: 0;
-	background: url(/theme/images/openrelevance/bg.png) top left repeat-x #A6A6A6;
-	text-align: center;
-}
-
-.clearfix:after {
-    content: ".";
-    display: block;
-    height: 0;
-    clear: both;
-    visibility: hidden;
-}
-
-.clearfix {
-    display: inline-block;
-}
-
-html[xmlns] .clearfix {
-    display: block;
-}
-
-* html .clearfix {
-    height: 1%;
-}
-
-.clearfix {
-    display: block;
-}
-
-.clearLeft {
-    clear:left;
-}
-
-/********************************
- Typography
-********************************/
-a,a:active,a:link {
-	text-decoration: none;
-	color: #29456b;
-	background: #EEFFE0;
-	border: 1px solid #FFFFFF;
-}
-
-a:visited {
-	text-decoration: none;
-	background: #EEFFE0;
-	border: 1px solid #FFFFFF;
-}
-
-a:hover {
-	color: #030d1c;
-	background: #EEFFE0;
-	border: 1px solid #9DED9D;
-}
-
-h1,h2,h3 {
-	font-family: "Trebuchet MS", Tahoma, Arial, Sans-serif;
-	color: #555;
-}
-
-h1 {
-  	font-size: 150%;
-	color: #895F30;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h2 {
-	font-size: 170%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h3 {
-	font-size: 130%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-p,dl {
-	padding: 10px;
-	margin: 0;
-}
-
-ul{
-	margin: 10px 10px;
-	padding: 0 0 0 10px;
-}
-
-ul {
-	list-style: none;
-}
-
-ol {
-	margin: 10px 30px;
-	padding: 0;
-}
-
-dt {
-	font-weight: bold;
-	color: #b13f1a;
-}
-
-dd {
-	padding-left: 25px;
-}
-
-/********************************
- /theme/images/openrelevance
-********************************/
-img {
-    border: none;
-}
-
-p img {
-    background: #fafafa;
-       border: 1px solid #dcdcdc;
-    padding: 5px;
-    margin:0 10px 0 0;
-}
-
-img.float-right {
-    margin: 5px 0px 10px 10px;
-}
-
-img.float-left {
-    margin: 5px 10px 10px 0px;
-}
-
-/********************************
- Code Snippets and Quotes
-********************************/
-code {
-    padding: 2px 4px;
-    text-align: left;
-    overflow: auto;
-    font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace;
-    /* white-space: pre; */
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-    border-radius: 4px;
-}
-
-acronym {
-    cursor: help;
-    border-bottom: 1px dotted #895F30;
-}
-
-blockquote {
-    margin: 15px 10px;
-    padding: 10px 10px 10px 35px;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/openrelevance/quote.jpg) no-repeat 10px 10px;
-    font-weight: normal;
-    font-size: 1.5em;
-    line-height: 1.5em;
-    font-style: italic;
-    font-family: "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #976957;
-}
-
-/********************************
- Tables
-********************************/
-table {
-	border-collapse: collapse;
-	margin: 15px 10px;
-}
-
-th {
-	background: #d14b1f url(/theme/images/openrelevance/header-bg.jpg) repeat-x 0 -100px;
-	height: 38px;
-	padding-left: 12px;
-	padding-right: 12px;
-	color: #fff;
-	text-align: left;
-	border-left: 1px solid #d14b1f;
-	border-bottom: solid 2px #fff;
-}
-
-tr {
-	height: 34px;
-}
-
-td {
-	padding-left: 11px;
-	padding-right: 11px;
-}
-
-/********************************
- Forms
-********************************/
-input,select {
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    color: #666666;
-    background: #fff;
-}
-
-textarea {
-    width: 400px;
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    height: 100px;
-    display: block;
-    color: #666666;
-}
-
-input,textarea,select {
-    background: #fff;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #D4D4D4 #ebebeb #ebebeb #d4d4d4;
-}
-
-input.button {
-    font: bold 12px Arial, Sans-serif;
-    height: 30px;
-    margin: 0;
-    padding: 2px 3px;
-    color: #555;
-    background: #E6E6E6;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #ebebeb #d4d4d4 #d4d4d4 #ebebeb;
-}
-
-/********************************
- Generic Classes
-********************************/
-.float-left {
-    float: left;
-}
-
-.float-right {
-    float: right;
-}
-
-.align-left {
-    text-align: left;
-}
-
-.align-right {
-    text-align: right;
-}
-
-.clearer {
-    clear: both;
-}
-
-/********************************
- Page Layout
-********************************/
-#wrap{
-    background: #fff url(/theme/images/openrelevance/wrapper.jpg) top center no-repeat;
-    width: 945px;
-	margin: 0 auto;
-    text-align:left;
-}
-
-#content-wrap  {
-    width:945px;
-	margin:0 auto;
-    padding-bottom: 42px;
-}
-
-#content {
-    width:500px;
-	float:left;
-	padding:30px 0 25px 0;
-}
-
-/********************************
- Footer
-********************************/
-#footer {
-  position: relative;
-	height: 100px;
-	clear:both;
-	font-size:11px;
-	font-family:Verdana, Arial, sans-serif;
-  width:945px;
-  border-top: 1px solid #eee;
-  background-color:#FFFFFF;
-}
-
-#foot {
-    text-align:left;
-    position:relative;
-    top:5px;
-    left:30px;
-}
-
-/********************************
- Header
-********************************/
-#header {
-    position: relative;
-    width: 945px;
-    height: 100px;
-    padding: 0;
-    margin: 0 auto;
-    background: transparent;
-}
-
-#header #logo {
-    position: absolute;
-    top: 15px;
-    left: 20px;
-    height: 42px;
-    width: 405px;
-}
-
-#header #logo a,img {
-    background: none;
-    border: none;
-}
-
-#header #controls {
-    position: absolute;
-    top: 60px;
-    right: 32px;
-    height: 42px;
-    color: #1b78d7;
-    font-size: 12px;
-    background: url(/theme/images/openrelevance/house.gif) top right no-repeat;
-    padding-right: 20px;
-    text-align: right;
-}
-
-#header #controls a {
-    position: relative;
-    top: -2px;
-}
-
-#header #language {
-    position: absolute;
-    top: 10px;
-    right: 32px;
-    height: 42px;
-    color: #797c7e;
-    text-align: right;
-}
-
-/********************************
- Search
-********************************/
-#search {
-    position:absolute;
-    top:0px;
-    right:0px;
-    background:url(/theme/images/openrelevance/search.gif) center left no-repeat;
-	padding:5px;
-	padding-top:4px;
-    padding-left:33px;
-	border-radius:3px;
-	background-color:#444;
-}
-
-.hintText {
-      display: none;
-}
-
-.fieldWithHint {
-      color: #001f2f;
-}
-
-/********************************
- Top Navigation
-********************************/
-#nav {
-    position: absolute;
-    clear: both;
-    margin: 0;
-    padding: 0;
-	padding-right:5px;
-	padding-left:5px;
-	right:0px;
-    height: 34px;
-    top: 92px;
-	border-radius:3px;
-    z-index: 99999;
-	background-color:#444;
-}
-
-#nav ul {
-    float: left;
-    list-style: none;
-    height: 32px;
-    margin: 0;
-    padding: 0;
-    display: inline;
-    background:#444;
-}
-
-#nav ul li {
-    display: inline;
-    margin: 0;
-    padding: 0;
-    background:#444;
-}
-
-#nav ul li a {
-    float: left;
-    margin: 0 0 0 0;
-    padding: 0px 15px 0px 15px;
-    font: normal 14px/ 34px "Trebuchet MS", Helvetica, Arial, Geneva, sans-serif;
-    font-variant: small-caps;
-    text-decoration: none;
-    letter-spacing: 0.0px;
-    color: #fff;
-    border: none;
-	border-right:1px inset #888;
-    background: #444;
-}
-
-#nav ul li a.last {
-	border-right:none;
-}
-
-#nav ul li a:hover,#nav ul li a:active {
-    color: #111;
-    background-image: url(/theme/images/openrelevance/header_hot.jpg) !important;
-}
-
-#nav ul li#current a {
-    color: #333333;
-    background-image: url(/theme/images/openrelevance/header_hot.jpg) !important;
-}
-
-/********************************
- Content Sections
-********************************/
-#main {
-    float: left;
-    width: 700px;
-    padding: 0;
-    margin: 0 0 0 20px;
-    display: inline;
-}
-
-#main h1 {
-	padding-bottom: 3px;
-	margin-top: 15px;
-	font: normal 3em "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: #333;
-	letter-spacing: -2px;
-	text-transform: none;
-	border-bottom: 1px solid #ebebeb;
-}
-
-#main h1 a {
-	color: #333;
-	text-decoration: none;
-	background: none;
-	border: none;
-}
-
-#main ul li {
-    list-style-image: url(/theme/images/openrelevance/bullet.gif);
-}
-
-#col1 {
-    float: left;
-    width: 260px;
-    padding: 0;
-    margin: 20px 0 0 20px;
-    display: inline;
-}
-
-#col2 {
-    float: left;
-    width: 260px;
-    padding: 0;
-    margin: 20px 0 0 20px;
-    display: inline;
-}
-
-#col1 h1, #col2 h1 {
-    padding-bottom: 3px;
-    margin-top: 15px;
-    font: normal 3em "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #666;
-    letter-spacing: -2px;
-    text-transform: none;
-    border-bottom: 1px solid #ebebeb;
-}
-
-#main #col1 h1, #main #col2 h1 {
-	border-bottom: 1px solid #ebebeb;
-	color:#304C70;
-	padding-bottom: 3px;
-	letter-spacing: -3px;
-	text-transform: none;
-	font-size:30px;
-}
-
-.feature {
-	margin:0px;
-	padding:0px;
-	height:435px;
-}
-
-.screen {
-	margin:10px 0 5px 0;
-	padding:0px;
-	background:#fff;
-	border:1px solid #eee;
-	width:255px;
-	height:200px;
-	overflow:hidden;
-}
-
-#main .hero {
-	margin:10px 0 5px 0;
-	padding:0px;
-	background:#fff;
-	border:1px solid #eee;
-	width:555px;
-}
-
-#main .highlights {
-	float:right;
-	width:240px;
-	background:#dfe9ef;
-	border:1px solid #eee;
-	margin:0px 10px 0px 5px;
-	display:inline;
-}
-
-#main .highlights ul li {
-    list-style-image: url(/theme/images/openrelevance/highlight-bullet.gif);
-}
-
-#main .highlights h4 {
-	padding:5px 5px 0 5px;
-}
-
-#sidebar {
-    float: right;
-    width: 200px;
-    padding: 0;
-    margin: 15px 20px 0 0;
-    display: inline;
-}
-
-#sidebar h2 {
-    margin-top: 10px;
-    padding: 15px 5px 3px 5px;
-    font: normal 2em 'trebuchet MS', Tahoma, Helvetica, Arial, sans-serif;
-    color: #666666;
-    letter-spacing: -.5px;
-}
-
-#sidebar ul.sidemenu {
-    text-align: left;
-    margin: 0px 5px 8px 0px;
-    padding: 5px 0 0 0;
-    text-decoration: none;
-    background: url(/theme/images/openrelevance/dots.gif) repeat-x left top;
-}
-
-#sidebar ul.sidemenu li {
-    list-style: none;
-    background: url(dots.gif) repeat-x left bottom;
-    padding: 4px 10px;
-    margin: 0;
-}
-
-* html body #sidebar ul.sidemenu li {
-    height: 1%;
-}
-
-#sidebar ul.sidemenu li a {
-    text-decoration: none;
-    background-image: none;
-    background-color: transparent;
-    border: none;
-    color: #304c70;
-    font-weight: bold;
-    font-family: "Trebuchet MS", Tahoma, Helvetica, Arial, Sans-serif;
-    font-size: 14px;
-    /* letter-spacing: .5px;  */
-}
-
-#sidebar ul.sidemenu li a span {
-    color: #989898;
-    font-family: Georgia, "Times New Roman", Times, serif;
-    font-style: italic;
-    font-weight: normal;
-    font-size: .8em;
-}
-
-#sidebar ul.sidemenu li a:hover {
-    color: #555;
-}
-
-#sidebar ul.sidemenu ul {
-    margin: 0 0 0 5px;
-    padding: 0;
-}
-
-#sidebar ul.sidemenu ul li {
-    background: none;
-}
-
-#sidebar .indentfirst {
-    margin-left:0px;
-}
-
-#sidebar .indentsecond {
-    margin-left:20px;
-}
-
-.status-item {
-    margin-left: 20px;
-}
-
-
-/********************************
- Content Styles
-********************************/
-.postmeta {
-    padding: 5px;
-    margin: 20px 10px 15px 10px;
-    font-size: 1em;
-    color: #777;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-}
-
-.postmeta .date {
-    margin: 0 10px 0 5px;
-}
-
-.postmeta a.comments {
-    margin: 0 10px 0 5px;
-}
-
-.postmeta a.readmore {
-    margin: 0 10px 0 5px;
-}
-
-.post-info {
-    font-size: .95em;
-    padding-top: 3px;
-    margin-left: 5px;
-    color: #bababa;
-}
-
-.post-info a {
-    color: #C5935C;
-}
-
-p.thumbs {
-    padding: 12px 0 0 10px;
-}
-
-.thumbs img {
-    position: relative;
-    border: 1px solid #ebebeb;
-    background: none;
-    padding: 4px;
-    margin: 5px;
-    /* margin: 4px 7px 4px 4px; */
-}
-
-.thumbs img:hover {
-    border: 1px solid #c5c5c5;
-    background: none;
-}
-
-.thumbs a:hover {
-    background-color: transparent;
-    border: none
-}
-
-/********************************
- Page Specific Styles
-********************************/
-/*HOME*/
-body#home #wrap {
-	position: relative;
-	width: 945px;
-	margin: 0 auto;
-	text-align: left;
-}
-
-body#home #header {
-	position: relative;
-	width: 945px;
-	height: 403px;
-	padding: 0;
-	margin: 0 auto;
-	background: transparent;
-}
-
-body#home #header #slides {
-	position: absolute;
-	top: 126px;
-	left: 0px;
-	width: 945px;
-	height: 260px;
-  background-color: #C4E0BA;
-  -webkit-border-top-left-radius: 30px;
-  -moz-border-radius-topleft: 30px;
-  border-top-left-radius: 30px;
-}
-
-body#home #header #slides .slideshow {
-	width:945px;
-	height:260px;
-	margin:0px;
-	padding:0px;
-}
-
-body#home #header #slides .callout {
-	position: absolute;
-	top: 25px;
-	left: 30px;
-	font-size: 30px;
-	line-height: 30px;
-	color: #2b1f48;
-}
-
-body#home #header #slides .descwrapper {
-	position: absolute;
-	top: 175px;
-	font-size: 14px;
-  background-color: #2B2A38;
-	width: 945px;
-  height: 85px;
-}
-
-body#home #header #slides .description {
-	position: absolute;
-	top: 175px;
-	left: 30px;
-	font-size: 14px;
-	line-height: 15px;
-	color: #e0e0e0;
-	width: 350px;
-}
-
-body#home #header #slides .descwrapper .description {
-	position: relative;
-	top: 15px;
-	left: 20px;
-	font-size: 14px;
-	line-height: 18px;
-	color: #e0e0e0;
-	width: 380px;
-}
-
-
-body#home #header #slides .controls {
-	width: 100px;
-	position: absolute;
-	top: 15px;
-	left: 750px;
-	height:30px;
-}
-
-body#home #header #slides .controls a {
-	border: none;
-	position:absolute;
-	height:30px;
-	line-height:24px;
-	padding:5px;
-	text-indent:-9999px;
-	outline:none;
-}
-
-body#home #header #slides .controls a.previous {
-	background: url(/theme/images/openrelevance/backward.gif) top center no-repeat;
-	left:0px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.next {
-	background: url(/theme/images/openrelevance/forward.gif) top center no-repeat;
-	left:60px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.stop {
-	background: url(/theme/images/openrelevance/pause.gif) top center no-repeat;
-	left:30px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.start {
-	background: url(/theme/images/openrelevance/start.gif) top center no-repeat;
-	left:30px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a img {
-	background: none;
-	border: none;
-	cursor: pointer;
-}
-
-body#home #header #slides .mantle{
-	position:absolute;
-	top:45px;
-	left:360px;
-}
-
-body#home #col1 {
-	float: left;
-	width: 260px;
-	padding: 0;
-	margin: 5px 0 0 0px;
-	display: inline;
-}
-
-body#home #col2 {
-	float: left;
-	width: 260px;
-	padding: 0;
-	margin: 5px 0 0 20px;
-	display: inline;
-}
-
-.downloadNow {
-	margin:30px 0 10px 0;
-}
-
-.downloadLinks span.docs {
-	float:left;
-	margin:0px 0px 0 0;
-	display:inline;
-}
-
-.downloadLinks span.previousVersions {
-	float:right;
-	margin:0px 20px 0 0;
-	display:inline;
-}
-
-/*SUBPAGE - NO SIDEBAR*/
-body#full #wrap {
-	position: relative;
-	background: #fff url(/theme/images/openrelevance/full-wrapper.jpg) top center no-repeat;
-	width: 945px;
-	margin: 0 auto;
-	text-align: left;
-}
-
-.section-content{
-    border-bottom: 1px black solid;
-}
-
-div.cmd{
-    background:  #d3d3d3;
-    display: block;
-    white-space: pre;
-    vertical-align: middle;
-    width: 99%;
-    padding-left: 5px;
-    padding-bottom: 0px;
-    padding-right: 5px;
-    padding-top: 0px;
-}
-
-code.inline{
-    font: 0.9em;
-    display: inline;
-    margin: 0px 0;
-    padding: 0px;
-    font-weight: bold;
-    background-color: white;
-    border-color: white;
-}
-
-
-/* DOWNLOAD BUTTONS */
-
-.download-desc {
-	color: gray;
-	font-size: 10px;
-	margin-top: 5px;
-	margin-bottom: 10px;
-	margin-left: 10px;
-}
-
-.button-wrapper {
-	width: 200px;
-  margin-top: 3px;
-	margin-bottom: 5px;
-}
-
-.button-orange a {
-	border: 2px solid black;
-	z-index: 1;
-	position: relative;
-	display: block;
-	height: 50px;
-	width: 200px;
-	/*TYPE*/
-	color: black;
-	font: 24px/50px Helvetica, Verdana, sans-serif;
-        font-weight: bold;
-	text-decoration: none;
-	text-align: center;
-	text-transform: uppercase;
-	/*GRADIENT*/
-	background: #D9411E !important; /* Old browsers */
-	background: -moz-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important;
-	/* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #C8BEB4) !important,
-		color-stop(100%, #D9411E) ); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important;
-	/* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #C8BEB4 0%, #D9411E 100%)important;
-	/* Opera 11.10+ */
-	background: -ms-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) important;;
-	/* IE10+ */
-	background: linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important; /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#C8BEB4',
-		endColorstr='#D9411E', GradientType=0 ); /* IE6-9 */
-}
-
-.button-green a {
-	border: 2px solid black;
-	z-index: 1;
-	position: relative;
-	display: block;
-	height: 50px;
-	width: 200px;
-	/*TYPE*/
-	color: black;
-	font: 24px/50px Helvetica, Verdana, sans-serif;
-        font-weight: bold;
-	text-decoration: none;
-	text-align: center;
-	text-transform: uppercase;
-	/*GRADIENT*/
-	background: #14A800 !important; /* Old browsers */
-	background: -moz-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #89FA7A) !important,
-		color-stop(100%, #1AA807) ); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* Opera 11.10+ */
-	background: -ms-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* IE10+ */
-	background: linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important; /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#14A800',
-		endColorstr='#1AA807', GradientType=0 ); /* IE6-9 */
-}
-
-.button-orange a,.flap {
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	-moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-}
-
-.button-green a,.flap {
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	-moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-}
-
-.flap {
-	background: #222;
-	display: block;
-	height: 40px;
-	width: 180px;
-	margin: -50px 0 0 10px;
-	/*TYPE*/
-	text-align: center;
-	font: 12px/45px Helvetica, Verdana, sans-serif;
-	color: #fff;
-	/*POSITION*/
-	position: absolute;
-	z-index: 0;
-	/*TRANSITION*/
-	-webkit-transition: all 0.5s ease;
-	-moz-transition: all 0.5s ease;
-	-o-transition: all 0.5s ease;
-	-ms-transition: all 0.5s ease;
-	transition: all 0.5s ease;
-}
-
-/*HOVER*/
-.button-orange:hover .bottom {
-	margin: -10px 0 0 10px;
-}
-
-.button-green:hover .bottom {
-	margin: -10px 0 0 10px;
-}
-
-.button-orange:hover .top {
-	margin: -80px 0 0 10px;
-	line-height: 35px;
-}
-
-.button-green:hover .top {
-	margin: -80px 0 0 10px;
-	line-height: 35px;
-}
-
-/*ACTIVE*/
-.button-orange a:active {
-	background: #D9411E; /* Old browsers */
-}
-
-.button-green a:active {
-	background: #14A800; /* Old browsers */
-}
-
-.button-orange:active .bottom {
-	margin: -20px 0 0 10px;
-}
-
-.button-green:active .bottom {
-	margin: -20px 0 0 10px;
-}
-
-.button-orange:active .top {
-	margin: -70px 0 0 10px;
-}
-
-.button-green:active .top {
-	margin: -70px 0 0 10px;
-}
diff --git a/themes/lucene/static/css/pylucene-jcc/global.css b/themes/lucene/static/css/pylucene-jcc/global.css
deleted file mode 100644
index 5873326..0000000
--- a/themes/lucene/static/css/pylucene-jcc/global.css
+++ /dev/null
@@ -1,1138 +0,0 @@
-/**********************************
- The Apache Software Foundation
-
-Derived from: Open for Business Project Website
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*********************************/
-
-/********************************
- Global Reset
-********************************/
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
-    border:0;
-    margin:0;
-    outline:0;
-    padding:0;
-    background:transparent;
-    vertical-align: baseline;
-}
-
-blockquote, q {
-    quotes: none;
-}
-
-blockquote:before,
-blockquote:after,
-q:before,
-q:after {
-    content:'';
-    content: none;
-}
-
-a, address, body, caption, cite, code, dfn, em, strong, th, var {
-    font-style: normal;
-    font-weight: normal;
-    text-decoration: none;
-}
-
-strong {
-    font-weight: bold;
-}
-
-em {
-    font-style: italic;
-}
-
-a img {
-    border: none;
-}
-
-ol, ul {
-    list-style: none;
-}
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
-
-/********************************
- General Layout
-********************************/
-* {margin:0;padding:0;}
-
-html, body, #wrap {height: 100%;}
-
-body > #wrap {height: auto; min-height: 100%;}
-
-body {
-    font: 13px/ 165% "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: black;
-	margin: 0;
-	padding: 0;
-	background: url(/theme/images/pylucene-jcc/bg.png) top left repeat-x #A6A6A6;
-	text-align: center;
-}
-
-.clearfix:after {
-    content: ".";
-    display: block;
-    height: 0;
-    clear: both;
-    visibility: hidden;
-}
-
-.clearfix {
-    display: inline-block;
-}
-
-html[xmlns] .clearfix {
-    display: block;
-}
-
-* html .clearfix {
-    height: 1%;
-}
-
-.clearfix {
-    display: block;
-}
-
-.clearLeft {
-    clear:left;
-}
-
-/********************************
- Typography
-********************************/
-a,a:active,a:link {
-	text-decoration: none;
-	color: #29456b;
-	background: #EEFFE0;
-	border: 1px solid #FFFFFF;
-}
-
-a:visited {
-	text-decoration: none;
-	background: #EEFFE0;
-	border: 1px solid #FFFFFF;
-}
-
-a:hover {
-	color: #030d1c;
-	background: #EEFFE0;
-	border: 1px solid #9DED9D;
-}
-
-h1,h2,h3 {
-	font-family: "Trebuchet MS", Tahoma, Arial, Sans-serif;
-	color: #555;
-}
-
-h1 {
-  	font-size: 150%;
-	color: #895F30;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h2 {
-	font-size: 170%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h3 {
-	font-size: 130%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-p,dl {
-	padding: 10px;
-	margin: 0;
-}
-
-ul{
-	margin: 10px 10px;
-	padding: 0 0 0 10px;
-}
-
-ul {
-	list-style: none;
-}
-
-ol {
-	margin: 10px 30px;
-	padding: 0;
-}
-
-dt {
-	font-weight: bold;
-	color: #b13f1a;
-}
-
-dd {
-	padding-left: 25px;
-}
-
-/********************************
- /theme/images/pylucene-jcc
-********************************/
-img {
-    border: none;
-}
-
-p img {
-    background: #fafafa;
-       border: 1px solid #dcdcdc;
-    padding: 5px;
-    margin:0 10px 0 0;
-}
-
-img.float-right {
-    margin: 5px 0px 10px 10px;
-}
-
-img.float-left {
-    margin: 5px 10px 10px 0px;
-}
-
-/********************************
- Code Snippets and Quotes
-********************************/
-code {
-    padding: 2px 4px;
-    text-align: left;
-    overflow: auto;
-    font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace;
-    /* white-space: pre; */
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-    border-radius: 4px;
-}
-
-acronym {
-    cursor: help;
-    border-bottom: 1px dotted #895F30;
-}
-
-blockquote {
-    margin: 15px 10px;
-    padding: 10px 10px 10px 35px;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/pylucene-jcc/quote.jpg) no-repeat 10px 10px;
-    font-weight: normal;
-    font-size: 1.5em;
-    line-height: 1.5em;
-    font-style: italic;
-    font-family: "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #976957;
-}
-
-/********************************
- Tables
-********************************/
-table {
-	border-collapse: collapse;
-	margin: 15px 10px;
-}
-
-th {
-	background: #d14b1f url(/theme/images/pylucene-jcc/header-bg.jpg) repeat-x 0 -100px;
-	height: 38px;
-	padding-left: 12px;
-	padding-right: 12px;
-	color: #fff;
-	text-align: left;
-	border-left: 1px solid #d14b1f;
-	border-bottom: solid 2px #fff;
-}
-
-tr {
-	height: 34px;
-}
-
-td {
-	padding-left: 11px;
-	padding-right: 11px;
-}
-
-/********************************
- Forms
-********************************/
-input,select {
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    color: #666666;
-    background: #fff;
-}
-
-textarea {
-    width: 400px;
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    height: 100px;
-    display: block;
-    color: #666666;
-}
-
-input,textarea,select {
-    background: #fff;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #D4D4D4 #ebebeb #ebebeb #d4d4d4;
-}
-
-input.button {
-    font: bold 12px Arial, Sans-serif;
-    height: 30px;
-    margin: 0;
-    padding: 2px 3px;
-    color: #555;
-    background: #E6E6E6;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #ebebeb #d4d4d4 #d4d4d4 #ebebeb;
-}
-
-/********************************
- Generic Classes
-********************************/
-.float-left {
-    float: left;
-}
-
-.float-right {
-    float: right;
-}
-
-.align-left {
-    text-align: left;
-}
-
-.align-right {
-    text-align: right;
-}
-
-.clearer {
-    clear: both;
-}
-
-/********************************
- Page Layout
-********************************/
-#wrap{
-    background: #fff url(/theme/images/pylucene-jcc/wrapper.jpg) top center no-repeat;
-    width: 945px;
-	margin: 0 auto;
-    text-align:left;
-}
-
-#content-wrap  {
-    width:945px;
-	margin:0 auto;
-    padding-bottom: 42px;
-}
-
-#content {
-    width:500px;
-	float:left;
-	padding:30px 0 25px 0;
-}
-
-/********************************
- Footer
-********************************/
-#footer {
-  position: relative;
-	height: 100px;
-	clear:both;
-	font-size:11px;
-	font-family:Verdana, Arial, sans-serif;
-  width:945px;
-  border-top: 1px solid #eee;
-  background-color:#FFFFFF;
-}
-
-#foot {
-    text-align:left;
-    position:relative;
-    top:5px;
-    left:30px;
-}
-
-/********************************
- Header
-********************************/
-#header {
-    position: relative;
-    width: 945px;
-    height: 100px;
-    padding: 0;
-    margin: 0 auto;
-    background: transparent;
-}
-
-#header #logo {
-    position: absolute;
-    top: 15px;
-    left: 20px;
-    height: 42px;
-    width: 405px;
-}
-
-#header #logo a,img {
-    background: none;
-    border: none;
-}
-
-#header #controls {
-    position: absolute;
-    top: 60px;
-    right: 32px;
-    height: 42px;
-    color: #1b78d7;
-    font-size: 12px;
-    background: url(/theme/images/pylucene-jcc/house.gif) top right no-repeat;
-    padding-right: 20px;
-    text-align: right;
-}
-
-#header #controls a {
-    position: relative;
-    top: -2px;
-}
-
-#header #language {
-    position: absolute;
-    top: 10px;
-    right: 32px;
-    height: 42px;
-    color: #797c7e;
-    text-align: right;
-}
-
-/********************************
- Search
-********************************/
-#search {
-    position:absolute;
-    top:0px;
-    right:0px;
-    background:url(/theme/images/pylucene-jcc/search.gif) center left no-repeat;
-	padding:5px;
-	padding-top:4px;
-    padding-left:33px;
-	border-radius:3px;
-	background-color:#444;
-}
-
-.hintText {
-      display: none;
-}
-
-.fieldWithHint {
-      color: #001f2f;
-}
-
-/********************************
- Top Navigation
-********************************/
-#nav {
-    position: absolute;
-    clear: both;
-    margin: 0;
-    padding: 0;
-	padding-right:5px;
-	padding-left:5px;
-	right:0px;
-    height: 34px;
-    top: 92px;
-	border-radius:3px;
-    z-index: 99999;
-	background-color:#444;
-}
-
-#nav ul {
-    float: left;
-    list-style: none;
-    height: 32px;
-    margin: 0;
-    padding: 0;
-    display: inline;
-    background:#444;
-}
-
-#nav ul li {
-    display: inline;
-    margin: 0;
-    padding: 0;
-    background:#444;
-}
-
-#nav ul li a {
-    float: left;
-    margin: 0 0 0 0;
-    padding: 0px 15px 0px 15px;
-    font: normal 14px/ 34px "Trebuchet MS", Helvetica, Arial, Geneva, sans-serif;
-    font-variant: small-caps;
-    text-decoration: none;
-    letter-spacing: 0.0px;
-    color: #fff;
-    border: none;
-	border-right:1px inset #888;
-    background: #444;
-}
-
-#nav ul li a.last {
-	border-right:none;
-}
-
-#nav ul li a:hover,#nav ul li a:active {
-    color: #111;
-    background-image: url(/theme/images/pylucene-jcc/header_hot.jpg) !important;
-}
-
-#nav ul li#current a {
-    color: #333333;
-    background-image: url(/theme/images/pylucene-jcc/header_hot.jpg) !important;
-}
-
-/********************************
- Content Sections
-********************************/
-#main {
-    float: left;
-    width: 700px;
-    padding: 0;
-    margin: 0 0 0 20px;
-    display: inline;
-}
-
-#main h1 {
-	padding-bottom: 3px;
-	margin-top: 15px;
-	font: normal 3em "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: #333;
-	letter-spacing: -2px;
-	text-transform: none;
-	border-bottom: 1px solid #ebebeb;
-}
-
-#main h1 a {
-	color: #333;
-	text-decoration: none;
-	background: none;
-	border: none;
-}
-
-#main ul li {
-    list-style-image: url(/theme/images/pylucene-jcc/bullet.gif);
-}
-
-#col1 {
-    float: left;
-    width: 260px;
-    padding: 0;
-    margin: 20px 0 0 20px;
-    display: inline;
-}
-
-#col2 {
-    float: left;
-    width: 260px;
-    padding: 0;
-    margin: 20px 0 0 20px;
-    display: inline;
-}
-
-#col1 h1, #col2 h1 {
-    padding-bottom: 3px;
-    margin-top: 15px;
-    font: normal 3em "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #666;
-    letter-spacing: -2px;
-    text-transform: none;
-    border-bottom: 1px solid #ebebeb;
-}
-
-#main #col1 h1, #main #col2 h1 {
-	border-bottom: 1px solid #ebebeb;
-	color:#304C70;
-	padding-bottom: 3px;
-	letter-spacing: -3px;
-	text-transform: none;
-	font-size:30px;
-}
-
-.feature {
-	margin:0px;
-	padding:0px;
-	height:435px;
-}
-
-.screen {
-	margin:10px 0 5px 0;
-	padding:0px;
-	background:#fff;
-	border:1px solid #eee;
-	width:255px;
-	height:200px;
-	overflow:hidden;
-}
-
-#main .hero {
-	margin:10px 0 5px 0;
-	padding:0px;
-	background:#fff;
-	border:1px solid #eee;
-	width:555px;
-}
-
-#main .highlights {
-	float:right;
-	width:240px;
-	background:#dfe9ef;
-	border:1px solid #eee;
-	margin:0px 10px 0px 5px;
-	display:inline;
-}
-
-#main .highlights ul li {
-    list-style-image: url(/theme/images/pylucene-jcc/highlight-bullet.gif);
-}
-
-#main .highlights h4 {
-	padding:5px 5px 0 5px;
-}
-
-#sidebar {
-    float: right;
-    width: 200px;
-    padding: 0;
-    margin: 15px 20px 0 0;
-    display: inline;
-}
-
-#sidebar h2 {
-    margin-top: 10px;
-    padding: 15px 5px 3px 5px;
-    font: normal 2em 'trebuchet MS', Tahoma, Helvetica, Arial, sans-serif;
-    color: #666666;
-    letter-spacing: -.5px;
-}
-
-#sidebar ul.sidemenu {
-    text-align: left;
-    margin: 0px 5px 8px 0px;
-    padding: 5px 0 0 0;
-    text-decoration: none;
-    background: url(/theme/images/pylucene-jcc/dots.gif) repeat-x left top;
-}
-
-#sidebar ul.sidemenu li {
-    list-style: none;
-    background: url(dots.gif) repeat-x left bottom;
-    padding: 4px 10px;
-    margin: 0;
-}
-
-* html body #sidebar ul.sidemenu li {
-    height: 1%;
-}
-
-#sidebar ul.sidemenu li a {
-    text-decoration: none;
-    background-image: none;
-    background-color: transparent;
-    border: none;
-    color: #304c70;
-    font-weight: bold;
-    font-family: "Trebuchet MS", Tahoma, Helvetica, Arial, Sans-serif;
-    font-size: 14px;
-    /* letter-spacing: .5px;  */
-}
-
-#sidebar ul.sidemenu li a span {
-    color: #989898;
-    font-family: Georgia, "Times New Roman", Times, serif;
-    font-style: italic;
-    font-weight: normal;
-    font-size: .8em;
-}
-
-#sidebar ul.sidemenu li a:hover {
-    color: #555;
-}
-
-#sidebar ul.sidemenu ul {
-    margin: 0 0 0 5px;
-    padding: 0;
-}
-
-#sidebar ul.sidemenu ul li {
-    background: none;
-}
-
-#sidebar .indentfirst {
-    margin-left:0px;
-}
-
-#sidebar .indentsecond {
-    margin-left:20px;
-}
-
-.status-item {
-    margin-left: 20px;
-}
-
-
-/********************************
- Content Styles
-********************************/
-.postmeta {
-    padding: 5px;
-    margin: 20px 10px 15px 10px;
-    font-size: 1em;
-    color: #777;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-}
-
-.postmeta .date {
-    margin: 0 10px 0 5px;
-}
-
-.postmeta a.comments {
-    margin: 0 10px 0 5px;
-}
-
-.postmeta a.readmore {
-    margin: 0 10px 0 5px;
-}
-
-.post-info {
-    font-size: .95em;
-    padding-top: 3px;
-    margin-left: 5px;
-    color: #bababa;
-}
-
-.post-info a {
-    color: #C5935C;
-}
-
-p.thumbs {
-    padding: 12px 0 0 10px;
-}
-
-.thumbs img {
-    position: relative;
-    border: 1px solid #ebebeb;
-    background: none;
-    padding: 4px;
-    margin: 5px;
-    /* margin: 4px 7px 4px 4px; */
-}
-
-.thumbs img:hover {
-    border: 1px solid #c5c5c5;
-    background: none;
-}
-
-.thumbs a:hover {
-    background-color: transparent;
-    border: none
-}
-
-/********************************
- Page Specific Styles
-********************************/
-/*HOME*/
-body#home #wrap {
-	position: relative;
-	width: 945px;
-	margin: 0 auto;
-	text-align: left;
-}
-
-body#home #header {
-	position: relative;
-	width: 945px;
-	height: 403px;
-	padding: 0;
-	margin: 0 auto;
-	background: transparent;
-}
-
-body#home #header #slides {
-	position: absolute;
-	top: 126px;
-	left: 0px;
-	width: 945px;
-	height: 260px;
-  background-color: #C4E0BA;
-  -webkit-border-top-left-radius: 30px;
-  -moz-border-radius-topleft: 30px;
-  border-top-left-radius: 30px;
-}
-
-body#home #header #slides .slideshow {
-	width:945px;
-	height:260px;
-	margin:0px;
-	padding:0px;
-}
-
-body#home #header #slides .callout {
-	position: absolute;
-	top: 25px;
-	left: 30px;
-	font-size: 30px;
-	line-height: 30px;
-	color: #2b1f48;
-}
-
-body#home #header #slides .descwrapper {
-	position: absolute;
-	top: 175px;
-	font-size: 14px;
-  background-color: #2B2A38;
-	width: 945px;
-  height: 85px;
-}
-
-body#home #header #slides .description {
-	position: absolute;
-	top: 175px;
-	left: 30px;
-	font-size: 14px;
-	line-height: 15px;
-	color: #e0e0e0;
-	width: 350px;
-}
-
-body#home #header #slides .descwrapper .description {
-	position: relative;
-	top: 15px;
-	left: 20px;
-	font-size: 14px;
-	line-height: 18px;
-	color: #e0e0e0;
-	width: 380px;
-}
-
-
-body#home #header #slides .controls {
-	width: 100px;
-	position: absolute;
-	top: 15px;
-	left: 750px;
-	height:30px;
-}
-
-body#home #header #slides .controls a {
-	border: none;
-	position:absolute;
-	height:30px;
-	line-height:24px;
-	padding:5px;
-	text-indent:-9999px;
-	outline:none;
-}
-
-body#home #header #slides .controls a.previous {
-	background: url(/theme/images/pylucene-jcc/backward.gif) top center no-repeat;
-	left:0px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.next {
-	background: url(/theme/images/pylucene-jcc/forward.gif) top center no-repeat;
-	left:60px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.stop {
-	background: url(/theme/images/pylucene-jcc/pause.gif) top center no-repeat;
-	left:30px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a.start {
-	background: url(/theme/images/pylucene-jcc/start.gif) top center no-repeat;
-	left:30px;
-	height:30px;
-	width:16px;
-}
-
-body#home #header #slides .controls a img {
-	background: none;
-	border: none;
-	cursor: pointer;
-}
-
-body#home #header #slides .mantle{
-	position:absolute;
-	top:45px;
-	left:360px;
-}
-
-body#home #col1 {
-	float: left;
-	width: 260px;
-	padding: 0;
-	margin: 5px 0 0 0px;
-	display: inline;
-}
-
-body#home #col2 {
-	float: left;
-	width: 260px;
-	padding: 0;
-	margin: 5px 0 0 20px;
-	display: inline;
-}
-
-.downloadNow {
-	margin:30px 0 10px 0;
-}
-
-.downloadLinks span.docs {
-	float:left;
-	margin:0px 0px 0 0;
-	display:inline;
-}
-
-.downloadLinks span.previousVersions {
-	float:right;
-	margin:0px 20px 0 0;
-	display:inline;
-}
-
-/*SUBPAGE - NO SIDEBAR*/
-body#full #wrap {
-	position: relative;
-	background: #fff url(/theme/images/pylucene-jcc/full-wrapper.jpg) top center no-repeat;
-	width: 945px;
-	margin: 0 auto;
-	text-align: left;
-}
-
-.section-content{
-    border-bottom: 1px black solid;
-}
-
-div.cmd{
-    background:  #d3d3d3;
-    display: block;
-    white-space: pre;
-    vertical-align: middle;
-    width: 99%;
-    padding-left: 5px;
-    padding-bottom: 0px;
-    padding-right: 5px;
-    padding-top: 0px;
-}
-
-code.inline{
-    font: 0.9em;
-    display: inline;
-    margin: 0px 0;
-    padding: 0px;
-    font-weight: bold;
-    background-color: white;
-    border-color: white;
-}
-
-
-/* DOWNLOAD BUTTONS */
-
-.download-desc {
-	color: gray;
-	font-size: 10px;
-	margin-top: 5px;
-	margin-bottom: 10px;
-	margin-left: 10px;
-}
-
-.button-wrapper {
-	width: 200px;
-  margin-top: 3px;
-	margin-bottom: 5px;
-}
-
-.button-orange a {
-	border: 2px solid black;
-	z-index: 1;
-	position: relative;
-	display: block;
-	height: 50px;
-	width: 200px;
-	/*TYPE*/
-	color: black;
-	font: 24px/50px Helvetica, Verdana, sans-serif;
-        font-weight: bold;
-	text-decoration: none;
-	text-align: center;
-	text-transform: uppercase;
-	/*GRADIENT*/
-	background: #D9411E !important; /* Old browsers */
-	background: -moz-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important;
-	/* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #C8BEB4) !important,
-		color-stop(100%, #D9411E) ); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important;
-	/* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #C8BEB4 0%, #D9411E 100%)important;
-	/* Opera 11.10+ */
-	background: -ms-linear-gradient(top, #C8BEB4 0%, #D9411E 100%) important;;
-	/* IE10+ */
-	background: linear-gradient(top, #C8BEB4 0%, #D9411E 100%) !important; /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#C8BEB4',
-		endColorstr='#D9411E', GradientType=0 ); /* IE6-9 */
-}
-
-.button-green a {
-	border: 2px solid black;
-	z-index: 1;
-	position: relative;
-	display: block;
-	height: 50px;
-	width: 200px;
-	/*TYPE*/
-	color: black;
-	font: 24px/50px Helvetica, Verdana, sans-serif;
-        font-weight: bold;
-	text-decoration: none;
-	text-align: center;
-	text-transform: uppercase;
-	/*GRADIENT*/
-	background: #14A800 !important; /* Old browsers */
-	background: -moz-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #89FA7A) !important,
-		color-stop(100%, #1AA807) ); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* Opera 11.10+ */
-	background: -ms-linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important;
-	/* IE10+ */
-	background: linear-gradient(top, #89FA7A 0%, #1AA807 100%) !important; /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#14A800',
-		endColorstr='#1AA807', GradientType=0 ); /* IE6-9 */
-}
-
-.button-orange a,.flap {
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	-moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-}
-
-.button-green a,.flap {
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	-moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
-}
-
-.flap {
-	background: #222;
-	display: block;
-	height: 40px;
-	width: 180px;
-	margin: -50px 0 0 10px;
-	/*TYPE*/
-	text-align: center;
-	font: 12px/45px Helvetica, Verdana, sans-serif;
-	color: #fff;
-	/*POSITION*/
-	position: absolute;
-	z-index: 0;
-	/*TRANSITION*/
-	-webkit-transition: all 0.5s ease;
-	-moz-transition: all 0.5s ease;
-	-o-transition: all 0.5s ease;
-	-ms-transition: all 0.5s ease;
-	transition: all 0.5s ease;
-}
-
-/*HOVER*/
-.button-orange:hover .bottom {
-	margin: -10px 0 0 10px;
-}
-
-.button-green:hover .bottom {
-	margin: -10px 0 0 10px;
-}
-
-.button-orange:hover .top {
-	margin: -80px 0 0 10px;
-	line-height: 35px;
-}
-
-.button-green:hover .top {
-	margin: -80px 0 0 10px;
-	line-height: 35px;
-}
-
-/*ACTIVE*/
-.button-orange a:active {
-	background: #D9411E; /* Old browsers */
-}
-
-.button-green a:active {
-	background: #14A800; /* Old browsers */
-}
-
-.button-orange:active .bottom {
-	margin: -20px 0 0 10px;
-}
-
-.button-green:active .bottom {
-	margin: -20px 0 0 10px;
-}
-
-.button-orange:active .top {
-	margin: -70px 0 0 10px;
-}
-
-.button-green:active .top {
-	margin: -70px 0 0 10px;
-}
diff --git a/themes/lucene/static/css/pylucene-jcc/pylucene.css b/themes/lucene/static/css/pylucene-jcc/pylucene.css
deleted file mode 100644
index e7dd3d7..0000000
--- a/themes/lucene/static/css/pylucene-jcc/pylucene.css
+++ /dev/null
@@ -1,933 +0,0 @@
-/**********************************
- The Apache Software Foundation
-
-Derived from: Open for Business Project Website
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-*********************************/
-
-/********************************
- Global Reset
-********************************/
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
-    border:0;
-    margin:0;
-    outline:0;
-    padding:0;
-    background:transparent;
-    vertical-align: baseline;
-}
-
-blockquote, q {
-    quotes: none;
-}
-
-blockquote:before,
-blockquote:after,
-q:before,
-q:after {
-    content:'';
-    content: none;
-}
-
-a, address, body, caption, cite, code, dfn, em, strong, th, var {
-    font-style: normal;
-    font-weight: normal;
-    text-decoration: none;
-}
-
-strong {
-    font-weight: bold;
-}
-
-em {
-    font-style: italic;
-}
-
-a img {
-    border: none;
-}
-
-ol, ul {
-    list-style: none;
-}
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
-
-/********************************
- General Layout
-********************************/
-* {margin:0;padding:0;}
-
-html, body, #wrap {height: 100%;}
-
-body > #wrap {height: auto; min-height: 100%;}
-
-body {
-    font: 13px/ 165% "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-	color: black;
-	margin: 0;
-	padding: 0;
-	background: url(/theme/images/pylucene-jcc/bg.png) top left repeat-x #A6A6A6;
-	text-align: center;
-}
-
-.clearfix:after {
-    content: ".";
-    display: block;
-    height: 0;
-    clear: both;
-    visibility: hidden;
-}
-
-.clearfix {
-    display: inline-block;
-}
-
-html[xmlns] .clearfix {
-    display: block;
-}
-
-* html .clearfix {
-    height: 1%;
-}
-
-.clearfix {
-    display: block;
-}
-
-.clearLeft {
-    clear:left;
-}
-
-/********************************
- Typography
-********************************/
-a,a:active,a:link {
-	text-decoration: none;
-	color: #29456b;
-}
-
-a:visited {
-	text-decoration: none;
-}
-
-a:hover {
-	color: #030d1c;
-}
-
-h1,h2,h3 {
-	font-family: "Trebuchet MS", Tahoma, Arial, Sans-serif;
-	color: #555;
-}
-
-h1 {
-  	font-size: 150%;
-	color: #895F30;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h2 {
-	font-size: 170%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-h3 {
-	font-size: 130%;
-	font-weight: normal;
-	padding: 20px 10px 5px 10px;
-	margin: 0;
-}
-
-p,dl {
-	padding: 10px;
-	margin: 0;
-}
-
-ul{
-	margin: 10px 10px;
-	padding: 0 0 0 10px;
-}
-
-ul {
-	list-style: none;
-}
-
-ol {
-	margin: 10px 30px;
-	padding: 0;
-}
-
-dt {
-	font-weight: bold;
-	color: #b13f1a;
-}
-
-dd {
-	padding-left: 25px;
-}
-
-/********************************
- /theme/images/pylucene-jcc
-********************************/
-img {
-    border: none;
-}
-
-p img {
-    background: #fafafa;
-       border: 1px solid #dcdcdc;
-    padding: 5px;
-    margin:0 10px 0 0;
-}
-
-img.float-right {
-    margin: 5px 0px 10px 10px;
-}
-
-img.float-left {
-    margin: 5px 10px 10px 0px;
-}
-
-/********************************
- Code Snippets and Quotes
-********************************/
-code {
-    margin: 5px 0;
-    padding: 15px;
-    text-align: left;
-    display: block;
-    overflow: auto;
-    font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace;
-    /* white-space: pre; */
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE;
-}
-
-acronym {
-    cursor: help;
-    border-bottom: 1px dotted #895F30;
-}
-
-blockquote {
-    margin: 15px 10px;
-    padding: 10px 10px 10px 35px;
-    border: 1px solid #ECF8FE;
-    background: #ECF8FE url(/theme/images/pylucene-jcc/quote.jpg) no-repeat 10px 10px;
-    font-weight: normal;
-    font-size: 1.5em;
-    line-height: 1.5em;
-    font-style: italic;
-    font-family: "Lucida Grande", Geneva, Verdana, Arial, Helvetica, sans-serif;
-    color: #976957;
-}
-
-/********************************
- Tables
-********************************/
-table {
-	border-collapse: collapse;
-	margin: 15px 10px;
-}
-
-th {
-	background: #d14b1f url(/theme/images/pylucene-jcc/header-bg.jpg) repeat-x 0 -100px;
-	height: 38px;
-	padding-left: 12px;
-	padding-right: 12px;
-	color: #fff;
-	text-align: left;
-	border-left: 1px solid #d14b1f;
-	border-bottom: solid 2px #fff;
-}
-
-tr {
-	height: 34px;
-}
-
-td {
-	padding-left: 11px;
-	padding-right: 11px;
-}
-
-/********************************
- Forms
-********************************/
-input,select {
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    color: #666666;
-    background: #fff;
-}
-
-textarea {
-    width: 400px;
-    padding: 4px;
-    font: normal 1em Verdana, sans-serif;
-    height: 100px;
-    display: block;
-    color: #666666;
-}
-
-input,textarea,select {
-    background: #fff;
-    border-width: 1px;
-    border-style: solid;
-    border-color: #D4D4D4 #ebebeb #ebebeb #d4d4d4;
-}
-
... 29450 lines suppressed ...