From 8720b9c4c4823e201dbdd0e1bd1c89cbc5f0f95c Mon Sep 17 00:00:00 2001
From: Konstantin Osipov <kostja.osipov@gmail.com>
Date: Wed, 22 Feb 2012 22:17:27 +0400
Subject: [PATCH] www-restyle: review fixes

- add content
- speed up rebuild by keeping static stuff in www-data
- change the layout and stylesheet
---
 .gitignore                                    |   4 +-
 CMakeLists.txt                                |   4 +
 doc/CMakeLists.txt                            |   4 +-
 doc/developer/CMakeLists.txt                  |   2 +-
 doc/developer/developer.xml                   |  26 ++-
 doc/user/CMakeLists.txt                       |   6 +-
 doc/www-data.in/CMakeLists.txt                |   4 +
 doc/www-data.in/_config                       |   6 +-
 doc/www-data.in/_ignore                       |   7 +-
 doc/www-data.in/_layout/base                  |  27 ++-
 doc/www-data.in/_layout/benchmark             |   2 +
 doc/www-data.in/_layout/docs                  |   2 +-
 doc/www-data.in/_layout/download              |   2 +
 doc/www-data.in/_layout/faq                   |   2 +
 doc/www-data.in/_layout/home                  |  40 ++---
 doc/www-data.in/_layout/intro                 |   2 +
 doc/www-data.in/benchmark                     |   6 +
 doc/www-data.in/docs                          |  18 +-
 doc/www-data.in/download.cmake                | 159 ++++++++++++++++++
 doc/www-data.in/faq                           |  67 ++++++++
 doc/www-data.in/index                         |  69 +++++---
 doc/www-data.in/{about => intro}              |  27 ++-
 doc/www-data.in/sidebar                       |  57 ++++---
 doc/www-data/bg_header.png                    | Bin 0 -> 388 bytes
 .../_extras => www-data}/favicon.ico          | Bin
 .../_extras/style.css => www-data/global.css} |  90 ++++++----
 .../_extras => www-data}/logo.png             | Bin
 .../_extras => www-data}/mail-logo.png        | Bin
 .../_extras => www-data}/robots.txt           |   0
 scripts/static.py                             |  23 +--
 30 files changed, 494 insertions(+), 162 deletions(-)
 create mode 100644 doc/www-data.in/CMakeLists.txt
 create mode 100644 doc/www-data.in/_layout/benchmark
 create mode 100644 doc/www-data.in/_layout/download
 create mode 100644 doc/www-data.in/_layout/faq
 create mode 100644 doc/www-data.in/_layout/intro
 create mode 100644 doc/www-data.in/benchmark
 create mode 100644 doc/www-data.in/download.cmake
 create mode 100644 doc/www-data.in/faq
 rename doc/www-data.in/{about => intro} (84%)
 create mode 100644 doc/www-data/bg_header.png
 rename doc/{www-data.in/_extras => www-data}/favicon.ico (100%)
 rename doc/{www-data.in/_extras/style.css => www-data/global.css} (85%)
 rename doc/{www-data.in/_extras => www-data}/logo.png (100%)
 rename doc/{www-data.in/_extras => www-data}/mail-logo.png (100%)
 rename doc/{www-data.in/_extras => www-data}/robots.txt (100%)

diff --git a/.gitignore b/.gitignore
index 95ba77b34e..e1fc93468d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,7 +27,6 @@ tarantool-*.tar.gz
 doc/tnt.ent
 doc/user/tarantool_user_guide.html
 doc/developer/tarantool_developer_guide.html
-doc/www-data/*
 third_party/luajit/src/luajit
 third_party/luajit/lib/vmdef.lua
 third_party/luajit/src/buildvm
@@ -39,3 +38,6 @@ third_party/luajit/src/lj_recdef.h
 third_party/luajit/src/lj_vm.s
 test/connector_c/tt
 *.reject
+doc/www-data/*.html
+doc/www-data/*.ru.html
+doc/www-data.in/download
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7adcf4e119..6cfb1b4358 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -262,6 +262,10 @@ configure_file(
     "${PROJECT_BINARY_DIR}/doc/tnt.ent"
     )
 
+configure_file(
+    "${PROJECT_SOURCE_DIR}/doc/www-data.in/download.cmake"
+    "${PROJECT_BINARY_DIR}/doc/www-data.in/download"
+    )
 message (STATUS "")
 message (STATUS "Successfully configured Tarantool infrastructure on ")
 message (STATUS "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}, build type '${CMAKE_BUILD_TYPE}'. ")
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 367db9f4a1..d38b79a036 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -1,5 +1,3 @@
 add_subdirectory(user)
 add_subdirectory(developer)
-
-add_custom_target(www-data ALL
-    COMMAND rm -rf www-data && mkdir www-data && ../scripts/static.py --source-path www-data.in --output-path www-data)
+add_subdirectory(www-data.in)
diff --git a/doc/developer/CMakeLists.txt b/doc/developer/CMakeLists.txt
index 691e16c82e..6760f3e479 100644
--- a/doc/developer/CMakeLists.txt
+++ b/doc/developer/CMakeLists.txt
@@ -1,7 +1,7 @@
 add_custom_target(dev-html ALL
     COMMAND ${XSLTPROC} --nonet
         --stringparam collect.xref.targets "all"
-        --xinclude -o tarantool_developer_guide.html
+        --xinclude -o ${PROJECT_BINARY_DIR}/doc/www-data/tarantool_developer_guide.html
         ${CMAKE_SOURCE_DIR}/doc/user/tnt-html.xsl
         developer.xml)
 
diff --git a/doc/developer/developer.xml b/doc/developer/developer.xml
index 2b54754e3f..2e15a8d78e 100644
--- a/doc/developer/developer.xml
+++ b/doc/developer/developer.xml
@@ -34,17 +34,25 @@ The other alternative, if you have actually modified
   
   </para>
 </section>
-</chapter>
 
-To build documentation, you'll need:
+<section>
+<title>How to build the user guide from DocBook .xml files</title>
+
+    <para>
+        To build documentation, you'll need:
 
-xsltproc
-docbook5-xml
-docbook-xsl-ns
-libsaxon-java- for saxon processing
-libxml-commons-resolver1.1-java
-libxerces2-java
-libxslthl-java
+        <itemizedlist>
+            <listitem>xsltproc</listitem>
+            <listitem>docbook5-xml</listitem>
+            <listitem>docbook-xsl-ns</listitem>
+            <listitem>libsaxon-java- for saxon processing</listitem>
+            <listitem>libxml-commons-resolver1.1-java</listitem>
+            <listitem>libxerces2-java</listitem>
+            <listitem>libxslthl-java</listitem>
+        </itemizedlist>
+    </para>
+</section>
+</chapter>
 <!--
      TOC:
 
diff --git a/doc/user/CMakeLists.txt b/doc/user/CMakeLists.txt
index 5421db1da1..fc9c78dbd0 100644
--- a/doc/user/CMakeLists.txt
+++ b/doc/user/CMakeLists.txt
@@ -1,7 +1,7 @@
 add_custom_target(html ALL
     COMMAND ${XSLTPROC} --nonet
         --stringparam collect.xref.targets "all"
-        --xinclude -o tarantool_user_guide.html
+        --xinclude -o ${PROJECT_BINARY_DIR}/doc/www-data/tarantool_user_guide.html
         tnt-html.xsl
         user.xml)
 
@@ -16,7 +16,7 @@ add_custom_target(pdf
 add_custom_target(relink
     COMMAND ${XSLTPROC} --nonet
         --stringparam collect.xref.targets "only"
-        --xinclude -o tarantool_user_guide.html
+        --xinclude -o ${PROJECT_BINARY_DIR}/doc/www-data/tarantool_user_guide.html
         tnt-html.xsl
         user.xml)
 
@@ -29,7 +29,7 @@ add_custom_target(html-saxon
         -x org.apache.xml.resolver.tools.ResolvingXMLReader
         -y org.apache.xml.resolver.tools.ResolvingXMLReader
         -r org.apache.xml.resolver.tools.CatalogResolver
-        -u -o tarantool_user_guide.html user.xml tnt-html.xsl)
+        -u -o ${PROJECT_BINARY_DIR}/doc/www-data/tarantool_user_guide.html user.xml tnt-html.xsl)
 
 add_custom_target(pdf-saxon
     COMMAND java -cp "/usr/share/java/saxon.jar:/usr/share/java/xml-commons-resolver-1.1.jar:/usr/share/java/docbook-xsl-saxon.jar:/usr/share/java/xercesImpl.jar:/etc/xml/resolver:/usr/share/java/xslthl.jar"
diff --git a/doc/www-data.in/CMakeLists.txt b/doc/www-data.in/CMakeLists.txt
new file mode 100644
index 0000000000..eb092d3d9b
--- /dev/null
+++ b/doc/www-data.in/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_custom_target(www-data ALL
+    COMMAND ${PROJECT_SOURCE_DIR}/scripts/static.py
+            --source-path ${PROJECT_SOURCE_DIR}/doc/www-data.in
+            --output-path ${PROJECT_BINARY_DIR}/doc/www-data)
diff --git a/doc/www-data.in/_config b/doc/www-data.in/_config
index 3c4029598b..97b70bf13d 100644
--- a/doc/www-data.in/_config
+++ b/doc/www-data.in/_config
@@ -4,12 +4,8 @@ languages:
   ru: { source-encoding: 'utf-8', output-encoding: 'utf-8', suffix: '.ru.html' }
 
 # i18n for small bits
-home_tag: { en: 'Home', ru: 'Начало' }
+home_tag: { en: 'Tarantool/Box - Front page', ru: 'Tarantool/Box - Главная' }
 
 # implement language switch in the header, note the reversed language tags
 lang_tag: { en: 'Русский', ru: 'English' }
 lang_ext: { en: '.ru.html', ru: '.html' }
-
-# Download links:
-current_download: http://tarantool.org/dist/tarantool-1.4.3-76-gf2b7d20-src.tar.gz
-more_downloads: http://tarantool.org/dist
diff --git a/doc/www-data.in/_ignore b/doc/www-data.in/_ignore
index bed262709f..c56389fbc0 100644
--- a/doc/www-data.in/_ignore
+++ b/doc/www-data.in/_ignore
@@ -1,2 +1,7 @@
 README
-*.py *.pyc
\ No newline at end of file
+*.py *.pyc
+CMakeLists.txt
+CMakeFiles
+cmake_install.cmake
+download.cmake
+Makefile
diff --git a/doc/www-data.in/_layout/base b/doc/www-data.in/_layout/base
index 42b24a5a80..567481a9e0 100644
--- a/doc/www-data.in/_layout/base
+++ b/doc/www-data.in/_layout/base
@@ -4,12 +4,12 @@
 <title>{{ title }}</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <link rel="shortcut icon" href="favicon.ico" />
-<link rel="stylesheet" type="text/css" href="style.css" />
+<link rel="stylesheet" type="text/css" href="global.css" />
 {% include "script" ignore missing %}
 </head>
 <body id="tarantool">
-<div id="wrapper">
 
+<div id="wrapper">
   <div id="header">
     {% block header %}
     <p class='lwrap'><a id="home_link" href="index{{ languages[pagelang].suffix | e }}">{{ home_tag | langselect | e }}</a></p>
@@ -20,21 +20,16 @@
   <div id="content">
     {% block content %}
     <div class="grid">
-      <div id="sidebar" class="span_4">
-<!--
-	<div id="content_cap">
-          <img id="logo" src="logo.png" alt="Tarantool Logo" />
-	</div>
--->
-	<div class="clear"></div>
-        {{ sidebar | langselect }}
-      </div>
-      <div id="main" class="span_8">
-        {% block prologue %}{% endblock %}
-        {{ content }}
-        {% block epilogue %}{% endblock %}
+      <div id="sidebar" class="span_3">
+          <div class="clear"></div>
+            {{ sidebar | langselect }}
+          </div>
+          <div id="main" class="span_8">
+            {% block prologue %}{% endblock %}
+            {{ content }}
+            {% block epilogue %}{% endblock %}
+          </div>
       </div>
-    </div>
     {% endblock content %}
   </div>
 
diff --git a/doc/www-data.in/_layout/benchmark b/doc/www-data.in/_layout/benchmark
new file mode 100644
index 0000000000..80cf7ac151
--- /dev/null
+++ b/doc/www-data.in/_layout/benchmark
@@ -0,0 +1,2 @@
+{% extends "base" %}
+{% set title = "Tarantool/Box: a benchmark" %}
diff --git a/doc/www-data.in/_layout/docs b/doc/www-data.in/_layout/docs
index 37c5371c20..68623fc1de 100644
--- a/doc/www-data.in/_layout/docs
+++ b/doc/www-data.in/_layout/docs
@@ -1,2 +1,2 @@
 {% extends "base" %}
-{% set title = "Tarantool Docs" %}
+{% set title = "Tarantool/Box documentation" %}
diff --git a/doc/www-data.in/_layout/download b/doc/www-data.in/_layout/download
new file mode 100644
index 0000000000..af503d442b
--- /dev/null
+++ b/doc/www-data.in/_layout/download
@@ -0,0 +1,2 @@
+{% extends "base" %}
+{% set title = "Tarantool/Box: downloads" %}
diff --git a/doc/www-data.in/_layout/faq b/doc/www-data.in/_layout/faq
new file mode 100644
index 0000000000..7b42d7633d
--- /dev/null
+++ b/doc/www-data.in/_layout/faq
@@ -0,0 +1,2 @@
+{% extends "base" %}
+{% set title = "Tarantool/Box: Frequently Asked Questions" %}
diff --git a/doc/www-data.in/_layout/home b/doc/www-data.in/_layout/home
index 4e4c39ac60..57cee8c12e 100644
--- a/doc/www-data.in/_layout/home
+++ b/doc/www-data.in/_layout/home
@@ -1,52 +1,52 @@
 {% extends "base" %}
-{% set title = "Tarantool" %}
+{% set title = "Tarantool/Box -- an efficient in-memory data store" %}
 
     {% block content %}
-    <div class="grid">
-
-      <div class="lwrap">
+    <div id="blurb" class="span_12">
 
-        <div id="blurb" class="span_8">
+      <img id="logo" src="logo.png" alt="Tarantool/Box Logo" />
 
-          <img id="logo" src="logo.png" alt="Tarantool Logo" />
+      {{ blurb | langselect }}
 
-          {{ blurb | langselect }}
+      <div class="clear"></div>
 
-          <div class="clear"></div>
+    </div>
 
-	  <p id="download" class="front_block">
-	    <a id="current" href="{{ current_download | e }}">Download</a>
-	    <a href="{{ more_downloads | e }}">[ More Downloads ]</a>
-          </p>
+    <div class="grid">
 
-        </div>
+      <div class="lwrap">
 
         <div id="blocks">
 
           <div id="docs" class="span_4">
             <div class='front_block'>
-              {{ home_page_docs | langselect }}
+              {{ home_page_learn | langselect }}
+            </div>
+          </div>
+
+          <div id="use" class="span_4">
+            <div class='front_block'>
+              {{ home_page_use | langselect }}
             </div>
           </div>
 
           <div id="join" class="span_4">
             <div class='front_block'>
-              {{ home_page_community | langselect }}
+              {{ home_page_join | langselect }}
             </div>
           </div>
 
           <div class="clear"></div>
 
         </div>
-
-      </div>
-
-      <div class="span_4">
-        <div id="news" class='front_block'>
+      <div class="span_9">
+        <div id="news" class='news_block'>
           {{ home_page_news | langselect }}
         </div>
       </div>
 
+      </div>
+
       <div class="clear"></div>
 
     </div> <!-- grid -->
diff --git a/doc/www-data.in/_layout/intro b/doc/www-data.in/_layout/intro
new file mode 100644
index 0000000000..c0323af768
--- /dev/null
+++ b/doc/www-data.in/_layout/intro
@@ -0,0 +1,2 @@
+{% extends "base" %}
+{% set title = "Tarantool/Box: an introduction" %}
diff --git a/doc/www-data.in/benchmark b/doc/www-data.in/benchmark
new file mode 100644
index 0000000000..5a1658e377
--- /dev/null
+++ b/doc/www-data.in/benchmark
@@ -0,0 +1,6 @@
+{% page benchmark en %}
+
+
+{% page benchmark ru %}
+
+
diff --git a/doc/www-data.in/docs b/doc/www-data.in/docs
index ee0c5f0229..4b18b9a109 100644
--- a/doc/www-data.in/docs
+++ b/doc/www-data.in/docs
@@ -3,11 +3,25 @@
 Documentation
 =============
 
-blah blah blah
+- [Tarnatool/Box User Guide](http://tarantool.org/tarantool_user_guide.html)
+- [Tarnatool/Box Developer guide](http://tarantool.org/tarantool_user_guide.html)
+
+## Where to get more help
+
+- [discussion list](http://groups.google.com/group/tarantool)
+- [developer list](http://lists.launchpad.net/tarantool-developers)
 
 {% page docs ru %}
 
 Документация
 ============
 
-ля ля тополя
+Пользовательская документация на данный момент
+доступна только на английском языке.
+
+## Другие источники:
+
+* русскоязычный список рассылки
+* стенография доклада на Форуме Технологий Mail.Ru
+* статьи на habrahabr.ru
+
diff --git a/doc/www-data.in/download.cmake b/doc/www-data.in/download.cmake
new file mode 100644
index 0000000000..6873671f03
--- /dev/null
+++ b/doc/www-data.in/download.cmake
@@ -0,0 +1,159 @@
+{% page download en %}
+
+### What's in the package
+
+Each binary package includes the server binary, *tarantool_box*,
+the command line client, *tarantool*, instance management
+script, *tarantool.sh*, a script to add more instances,
+*tarantool_expand.sh*, and, last but not least, man pages and the user
+guide.
+
+### How to choose the right version for download 
+
+Tarantool/Box uses a 3-digit versioning scheme
+&lt;major&gt;-&lt;minor&gt;-&lt;patch&gt;.
+Major digits change rarely. A minor version increase
+indicates an incompatibile change. Minor version change happens
+when the source tree receives a few important bugfixes.
+
+The version string may also contain a git revision id, to ease
+identification of the unqiue commit used to generate the build.
+
+The current version of the stable branch is **@TARANTOOL_VERSION@**.
+
+An automatic build system creates, tests and publishes packages
+for every push into the stable branch. All binary packages contain
+symbol information. Additionally, **-debug-** 
+packages contain asserts and are compiled without optimization.
+
+To simplify problem analysis and avoid various bugs induced 
+by compilation parameters and environment, it is recommended
+that production systems use the builds provided on this site.
+
+The latest build can be found below.
+
+<table border=1 title="Download the latest build, @TARANTOOL_VERSION@" width=100%> 
+
+  <tr width=60%>
+    <td colspan=1>Source tarball</td>
+    <td colspan=3 align=center>
+        <a href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@.src.tar.gz">tarantool-@TARANTOOL_VERSION@.src.tar.gz</a>
+    </td>
+  </tr>
+
+  <th colspan=3>Linux</th>
+
+<!-- Debian -->
+
+  <tr>
+    <td>
+        Debian software package (<b>.deb</b>)
+    </td>
+
+    <td align=center>
+        <a href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-i686.deb">32-bit</a>
+    </td>
+
+    <td align=center>
+        <a href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-i686.deb">64-bit</a>
+    </td>
+  </tr>
+
+  <tr>
+    <td>
+        Debian software package (<b>.deb</b>), with debug info 
+    </td>
+    <td align=center>
+        <a
+        href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-i686-debug.deb">32-bit</a>
+    </td>
+
+    <td align=center>
+        <a
+        href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-x864_64-debug.deb">64-bit</a>
+    </td>
+  </tr>
+
+<!-- RPM -->
+
+  <tr>
+    <td>
+        RedHat <b>.rpm</b>
+    </td>
+
+    <td align=center>
+        <a href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-i686.rpm">32-bit</a>
+    </td>
+
+    <td align=center>
+        <a href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-i686.rpm">64-bit</a>
+    </td>
+  </tr>
+
+  <tr>
+    <td>
+        RedHat <b>.rpm</b>, with debug info
+    </td>
+    <td align=center>
+        <a
+        href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-i686-debug.rpm">32-bit</a>
+    </td>
+
+    <td align=center>
+        <a
+        href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-x864_64-debug.rpm">64-bit</a>
+    </td>
+  </tr>
+
+<!-- .tar.gz -->
+
+  <tr>
+    <td>
+        Binary tarball (<b>.tar.gz</b>) 
+    </td>
+    <td align=center>
+        <a href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-i686.tar.gz">32-bit</a>
+    </td>
+
+    <td align=center>
+        <a href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-linux-x86_64.tar.gz">64-bit</a>
+    </td>
+  </tr>
+
+  <th colspan=3>FreeBSD</th>
+
+<!-- .tar.gz -->
+
+  <tr>
+    <td>
+        Binary tarball (<b>.tar.gz</b>) 
+    </td>
+    <td align=center>
+        <a
+        href="http://tarantool.org/dist/tarantool-@TARANTOOL_VERSION@-freebsd-i386.tar.gz">32-bit</a>
+    </td>
+
+    <td align=center>
+    </td>
+  </tr>
+  <th colspan=4>Mac OS X</th>
+  <tr> 
+    <td align=center colspan=4><i>Coming soon...</i></td>
+  <tr>
+
+</table>
+
+### All downloads
+
+An archive of old releases can be found at <a
+href="http://tarantool.org/dist">here</a>.
+
+### Connectors
+
+- Perl driver, [CPAN home](http://search.cpan.org/~yuran/MR-Tarantool/)
+- [Ruby driver](https://github.com/mailru/tarantool-ruby)
+- Python driver, [hosted at pypi.python.org](http://pypi.python.org/pypi/tarantool)
+{% page download ru %}
+
+<!-- vim: syntax=html
+-->
diff --git a/doc/www-data.in/faq b/doc/www-data.in/faq
new file mode 100644
index 0000000000..41ba2e7b78
--- /dev/null
+++ b/doc/www-data.in/faq
@@ -0,0 +1,67 @@
+{% page faq en %}
+
+## Frequently Asked Questions
+
+**Q. Why Tarantool?**
+
+A. Tarantool is a result of long trial and error process within Mail.Ru. It's an nth generation of a family of custom in-memory data servers, developed for various web applications. Besides, when Tarantool development started (2008) there were no stable and sufficiently functional open source alternative.
+
+**Q. What's the key advantage of Tarantool?**
+
+A. Tarantool provides a fairly rich core feature set (HASH and TREE indexes, secondary indexes, composite indexes,
+asynchronous replication, hot standby, data durability) along with support for Lua stored procedures.
+These two properties allow to code fast, atomic and reliable in-memory data servers which handle non-trivial application-specific logic. The win over traditional SQL servers is in performance: low-overhead, lock-free architecture allows to serve
+an order of magnitude more RPS on comparable hardware. The win over NoSQL alternatives is in flexibility: Lua allows to flexibly process data stored in compact, not normalized format.
+
+**Q. What are your development plans?**
+
+A. Performance. Better support for transactions. Advanced replication and clustering features.
+
+**Q. Who is developing Tarantool?**
+
+A. There is a small engineering team employed by Mail.ru -- check out our commit logs on github. The development is fully open, and Python and PHP drivers are written by Konstantin Cherkasoff and Alexander Kalendarev from community.
+
+**Q. How serious is Mail.Ru about Tarantool?**
+
+A. Tarantool is an open source project, distributed under BSD license, and as such does not depend on any one sponsor. However, it is currently and integral part of Mail.Ru backbone, and because of that, gets a lot of support from Mail.ru.
+
+**Q. Why is Tarantool primary port number 33013?**
+
+A. It's a prime number which is easy to remember, because 3313, 3301, 313, 13 and 3 are also prime numbers.
+
+**Q. My arena_used/items_used in SHOW SLAB output is >> 1. What does it mean and what should I do?**
+
+A. A ratio of arena_used to items_used >> 1 indicates that there shore/fragmentation accumulated by the slab allocator. Imagine there are a lot of small tuples stored in the system initially, and later on each tuple becomes bigger and doesn't fit into its old slab size. The old slabs are never relinquished by the allocator. Currently this can be solved only by a server restart.
+
+{% page faq ru %}
+
+**Q. Why Tarantool?**
+
+A. Tarantool is a result of long trial and error process within Mail.Ru. It's an nth generation of a family of custom in-memory data servers, developed for various web applications. Besides, when Tarantool development started (2008) there were no stable and sufficiently functional open source alternative.
+
+**Q. What's the key advantage of Tarantool?**
+
+A. Tarantool provides a fairly rich core feature set (HASH and TREE indexes, secondary indexes, composite indexes,
+asynchronous replication, hot standby, data durability) along with support for Lua stored procedures.
+These two properties allow to code fast, atomic and reliable in-memory data servers which handle non-trivial application-specific logic. The win over traditional SQL servers is in performance: low-overhead, lock-free architecture allows to serve
+an order of magnitude more RPS on comparable hardware. The win over NoSQL alternatives is in flexibility: Lua allows to flexibly process data stored in compact, not normalized format.
+
+**Q. What are your development plans?**
+
+A. Performance. Better support for transactions. Advanced replication and clustering features.
+
+**Q. Who is developing Tarantool?**
+
+A. There is a small engineering team employed by Mail.ru -- check out our commit logs on github. The development is fully open, and Python and PHP drivers are written by Konstantin Cherkasoff and Alexander Kalendarev from community.
+
+**Q. How serious is Mail.Ru about Tarantool?**
+
+A. Tarantool is an open source project, distributed under BSD license, and as such does not depend on any one sponsor. However, it is currently and integral part of Mail.Ru backbone, and because of that, gets a lot of support from Mail.ru.
+
+**Q. Why is Tarantool primary port number 33013?**
+
+A. It's a prime number which is easy to remember, because 3313, 3301, 313, 13 and 3 are also prime numbers.
+
+**Q. My arena_used/items_used in SHOW SLAB output is >> 1. What does it mean and what should I do?**
+
+A. A ratio of arena_used to items_used >> 1 indicates that there shore/fragmentation accumulated by the slab allocator. Imagine there are a lot of small tuples stored in the system initially, and later on each tuple becomes bigger and doesn't fit into its old slab size. The old slabs are never relinquished by the allocator. Currently this can be solved only by a server restart.
diff --git a/doc/www-data.in/index b/doc/www-data.in/index
index 652e9f3f4c..17a6576177 100644
--- a/doc/www-data.in/index
+++ b/doc/www-data.in/index
@@ -1,19 +1,19 @@
 {% text blurb en %}
 
-# Tarantool
-## high performance in-memory key-value store
+# Tarantool/Box - an efficient in-memory data store
+##Tarantool is an extensible, persistent, transactional database, designed to store the most volatile and highly accessible web data.
 
 {% text blurb ru %}
 
-# Tarantool
-## high performance in-memory key-value store
+# Tarantool/Box - NoSQL СУБД для высокой нагрузки
+## Tarantool - расширяемая, транзакционная СУБД для хранения наиболее запрашиваемых и часто меняющихся данных.
 
 {% text home_page_news en %}
 
-Stay Informed
-=============
+What's new
+==========
 
-### What's new
+2012-02-18: <a href="http://tarantool.org">http://tarantool.org</a> gets a new look! 
 
 2011-10-07: <a href="http://tarantool.org/dist/tarantool-1.4.3-3-g45804c6-src.tar.gz">Tarantool 1.4.3</a>, stable version of 1.4 branch.
 
@@ -25,10 +25,10 @@ Stay Informed
 
 {% text home_page_news ru %}
 
-Информация
-==========
+Новости
+=======
 
-### Новости
+2012-02-18: Новый дизайн <a href="http://tarantool.org">http://tarantool.org</a>
 
 2011-10-07: <a href="http://tarantool.org/dist/tarantool-1.4.3-3-g45804c6-src.tar.gz">Tarantool 1.4.3</a>, stable version of 1.4 branch.
 
@@ -38,34 +38,57 @@ Stay Informed
 
 2011-05-14: <a href="http://launchpad.net/tarantool/1.3/1.3.5/+download/tarantool-1.3.5-src.tar.gz">tarantool-1.3.5</a> (stable) is out.
 
-{% text home_page_docs en %}
+{% text home_page_learn en %}
 
-[Learn It](docs.html)
+Learn more
 =====================
 
-- [About](about.html)
-- [Documentation](http://tarantool.org/tarantool_user_guide.html)
-- [Wiki](http://github.com/mailru/tarantool/wiki)
+- [Introduction](intro.html)
+- [Frequently Aasked Questions](faq.html)
+- [A benchmark](benchmark.html)
 
-{% text home_page_docs ru %}
+{% text home_page_learn ru %}
 
-[Описание](docs.ru.html)
+Узнать больше
 ========================
 
 - [Обзор](about.ru.html)
-- [Документвция](http://tarantool.org/tarantool_user_guide.html)
+- статья на habrahabr
 - [Wiki](http://github.com/mailru/tarantool/wiki)
 
-{% text home_page_community en %}
+{% text home_page_use en %}
 
-Get Involved
+Use Tarantool
 ============
+- <p id="download"><a id="current_download" href="download.html">Download Tarantool</a></p>
+- [Read the User Guide](tarantool_user_guide.html)
+- [Browse a stored procedures archive](http://github.com/mailru/tntlua)
+- [Join the mailing list](http://groups.google.com/group/tarantool/subscribe)
+- [Report a bug](https://bugs.launchpad.net/tarantool/+filebug)
+- [View features and milestones](https://launchpad.net/tarantool)
 
-- [Code Repo](https://github.com/mailru/tarantool)
-- [Bugs](http://bugs.launchpad.net/tarantool)
+{% text home_page_use ru %}
+
+Использовать Tarantool
+======================
+
+- [Исходный код](https://github.com/mailru/tarantool)
+- [База дефектов](http://bugs.launchpad.net/tarantool)
+- [Документация](tarantool_user_guide.html)
 - IRC: #tarantool on irc.freenode.net
 
-{% text home_page_community ru %}
+{% text home_page_join en %}
+
+Get Involved
+============
+
+- [Browse Git source](https://github.com/mailru/tarantool)
+- [Read the developer guide](tarantool_developer_guide.html)
+- [IRC chat with developers](http://webchat.freenode.net/?channels=tarantool)
+- [Developer list archives](https://lists.launchpad.net/tarantool-developers/)
+- [Help improve our Wiki](http://github.com/mailru/tarantool/wiki)
+
+{% text home_page_join ru %}
 
 Участие
 =======
diff --git a/doc/www-data.in/about b/doc/www-data.in/intro
similarity index 84%
rename from doc/www-data.in/about
rename to doc/www-data.in/intro
index 5f434bd4d0..1840b3fd60 100644
--- a/doc/www-data.in/about
+++ b/doc/www-data.in/intro
@@ -1,6 +1,10 @@
-{% page docs en %}
+{% page intro en %}
 
-Tarantool/Box, or simply Tarantool, is a high performance key/value storage server.  The code is available for free under the terms of <em><a href="http://www.gnu.org/licenses/license-list.html#ModifiedBSD">BSD license</a></em>. Supported platforms are GNU/Linux and FreeBSD.
+## What is Tarantool?
+
+Tarantool/Box, or simply Tarantool, is a high performance key/value storage server. The code is available for free under the terms of <em><a href="http://www.gnu.org/licenses/license-list.html#ModifiedBSD">BSD license</a></em>. Supported platforms are GNU/Linux and FreeBSD.
+
+## An overview of the architecture
 
 The server <span class="strong"><strong>maintains all its data in random-access memory</strong></span>, and therefore can handle read requests blazingly fast.  At the same time, a copy of the data is kept on non-volatile storage (a disk drive), and inserts and updates are performed atomically.
 
@@ -8,15 +12,28 @@ To ensure atomicity, consistency and crash-safety of the persistent copy, a writ
 
 If update and delete rate is high, a constantly growing write-ahead log file (or files) can pose a disk space problem, and significantly increase time necessary to restart from disk. A simple solution is employed: the server <span class="strong"><strong>can be requested to save a concise snapshot</strong></span> of its current data. The underlying operating system's <span class="quote">&#8220;<span class="quote">copy-on-write</span>&#8221;</span> feature is employed to take the snapshot in a quick, resource-savvy and non-blocking manner. The <span class="quote">&#8220;<span class="quote">copy-on-write</span>&#8221;</span> technique guarantees that snapshotting has minimal impact on server performance.
 
+<span class="strong"><strong>Tarantool is lock-free</strong></span>. Instead of the underlying operating system's concurrency primitives, Tarantool uses cooperative multitasking environment to simultaneously operate on thousands of connections. While this approach limits server scalability to a single CPU core, in practice it removes competition for the memory bus and sets the scalability limit to the top of memory and network throughput. CPU utilization of a typical highly-loaded Tarantool server is under 10%.
+
+## Main features
+
+A key feature of Tarantool is support for stored procedures, which can
+access and modify data atomically. Procedures can be created, modified,
+dropped at runtime. With stored procedures, it's possible to
+turn Tarantool into a highly flexible and extremely fast social web
+application server.
+
 Tarantool supports replication. Replicas may run locally or on a remote host. Tarantool replication is asynchronous and does not block writes to the master. When or if the master becomes unavailable, the replica can be switched to assume the role of the master.
 
-<span class="strong"><strong>Tarantool is lock-free</strong></span>. Instead of the underlying operating system's concurrency primitives, Tarantool uses cooperative multitasking environment to simultaneously operate on thousands of connections. While this approach limits server scalability to a single CPU core, in practice it removes competition for the memory bus and sets the scalability limit to the top of memory and network throughput. CPU utilization of a typical highly-loaded Tarantool server is under 10%.
+## How stable is the software?
 
-<span class="strong"><strong>The software is production-ready</strong></span>. Tarantool has been developed and is actively used at <em><a href="http://api.mail.ru">Mail.Ru</a></em> one of the leading Russian web content providers. At Mail.Ru, the sowtware serves the <span class="quote">&#8220;<span class="quote">hottest</span>&#8221;</span> data, such as online users and their sessions, online application properties, the map between users and their serving shards.
+<span class="strong"><strong>The software is
+production-ready</strong></span>. Tarantool has been developed and is
+actively used at <em><a href="http://api.mail.ru">Mail.Ru</a></em> one of
+the leading Russian web content providers, since 2008. At Mail.Ru, the sowtware serves the <span class="quote">&#8220;<span class="quote">hottest</span>&#8221;</span> data, such as online users and their sessions, online application properties, the map between users and their serving shards.
 
 To conclude, Tarantool/Box is ideal for highly volatile and/or highly accessed Web data. With Tarantool, performance overhead on serving data is minimal: a single server can easily deal with tens or even hundreds of thousands of requests per second. Snapshots can be made when Web user activity is at its lowest, for example at night, and thus add little or no restraint on the top throughput of the system.  If the master becomes unavailable, a replica can assume the role of the master with minimal downtime.
 
-{% page docs ru %}
+{% page intro ru %}
 
 <b>Tarantool</b> &mdash; однопоточный TCP сервер, реализующий кооперативную многозадачность. Разрабатывается с учетом работы под высокими нагрузками (десятки тысяч RPS). Можно выделить две логические составляющие: ядро и модули. В настоящее время подключение модулей производится на этапе компиляции. На уровне ядра реализуется базовый функционал (общение по сети, работа с бинарными логами, репликация по сети, быстрое переключение на резервный сервер и т.п.). В модулях реализуется бизнес логика конкретного приложения с использованием API ядра.
 
diff --git a/doc/www-data.in/sidebar b/doc/www-data.in/sidebar
index e1cabb08c3..41fc0ca284 100644
--- a/doc/www-data.in/sidebar
+++ b/doc/www-data.in/sidebar
@@ -1,24 +1,43 @@
 {% text sidebar en %}
 
-* [Home](index.html)
-* [Docs](docs.html) 
-	* [About](about.html)
-	* [User Guide](http://tarantool.org/tarantool_user_guide.html)
-	* [Wiki](https://github.com/mailru/tarantool/wiki)
-* [Downloads](http://tarantool.org/dist/)
-* Community
-	* [Code Repo](https://github.com/mailru/tarantool)
-	* [Bugs](https://bugs.launchpad.net/tarantool)
+* [Documentation](docs.html)
+    * [Introduction](intro.html)
+    * [Benchmark](benchmark.html)
+    * [User Guide](tarantool_user_guide.html)
+    * [FAQ](faq.html)
+    * [Developer guide](tarantool_developer_guide.html)
+* [Github resources](http://github.com/mailru/tarantool)
+    * [Git source](https://github.com/mailru/tarantool)
+    * [Wiki](http://github.com/mailru/tarantool/wiki)
+    * [Lua code](http://github.com/mailru/tntlua)
+* [Launchpad resources](http://launchpad.net/tarantool)
+    * [Bug Database](https://bugs.launchpad.net/tarantool)
+    * [Open tasks](https://blueprints.launchpad.net/tarantool)
+    * [Mailinng list](https://lists.launchpad.net/tarantool-developers/)
+* Other
+    * [User group](http://groups.google.com/group/tarantool)
+    * [IRC chat](http://webchat.freenode.net/?channels=tarantool)
+    * [Latest build](download.html)
+    * [All downloads](http://tarantool.org/dist)
 
 {% text sidebar ru %}
 
-* [Home](index.ru.html)
-* [Docs](docs.ru.html) 
-	* [About](about.ru.html)
-*	* [User Guide](http://tarantool.org/tarantool_user_guide.html)
-	* [Wiki](https://github.com/mailru/tarantool/wiki)
-* [Downloads](http://tarantool.org/dist/)
-* Community
-	* [Code Repo](https://github.com/mailru/tarantool)
-	* [Bugs](https://bugs.launchpad.net/tarantool)
-
+* [Документация](docs.ru.html)
+    * [Введение](intro.ru.html)
+    * [Бенчмарк](benchmark.ru.html)
+    * [Руководство пользователя](tarantool_user_guide.html)
+    * [ЧАВО](faq.ru.html)
+    * [Руководство разработчика](tarantool_developer_guide.html)
+* [Ресурсы Github](http://github.com/mailru/tarantool)
+    * [Исходный код](https://github.com/mailru/tarantool)
+    * [Вики](http://github.com/mailru/tarantool/wiki)
+    * [Lua примеры](http://github.com/mailru/tntlua)
+* [Ресурсы Launchpad](http://launchpad.net/tarantool)
+    * [База дефектов](https://bugs.launchpad.net/tarantool)
+    * [База задач](https://blueprints.launchpad.net/tarantool)
+    * [Список рассылки](https://lists.launchpad.net/tarantool-developers/)
+* Другое 
+    * [Группа пользователей](http://groups.google.com/group/tarantool-ru)
+    * [IRC чат](http://webchat.freenode.net/?channels=tarantool)
+    * [Последний релиз](download.ru.html)
+    * [Все релизы](http://tarantool.org/dist)
diff --git a/doc/www-data/bg_header.png b/doc/www-data/bg_header.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d543cdec89de602df198f4dd527f5749f2636db
GIT binary patch
literal 388
zcmeAS@N?(olHy`uVBq!ia0vp^MnGJ}!3-o%z537uq!^2X+?^QKos)S9<dg>Zgt*Gb
z%n}Qm=2f%SrF^wq%q-*V#ny$(eQMWP6)f|uTdx>5TQ_}ycItfFq80WfE8MHrxK^w-
z%~_%xKgY9rtxVKRz4V0+B`YN(rkmw1(M*}Ak}yXjd7e|*D(R>h2APY38aD<uZd6N}
z>tDaYB7dn-*5Z)nP2%CxKJxz%13G}Sz$3Dlfq`2Xgc%uT&5-~KvX^-Jy0YJ46696p
z{PMu_2T*9Lr;B4q#No52kBc@jh%h+zaIhJ5Nd&&!?~;Av^gjFVo^=tArl_k;6<3?e
z*&S`<qot`fRaI>&+hngs&!tC}Y&x{0=<uUya+6PSPCg|#`IOk?Q+$(8u}?n5I@zoB
zsIIh+R=kfEzmJxz+EiP$smy9q87H6WII5fPqZRI>WvVt+X0lgAwvU#s+Ei<??Q;xQ
go|zFMHY51ot?V;%>Xw$=2Re|!)78&qol`;+0FjQ2r2qf`

literal 0
HcmV?d00001

diff --git a/doc/www-data.in/_extras/favicon.ico b/doc/www-data/favicon.ico
similarity index 100%
rename from doc/www-data.in/_extras/favicon.ico
rename to doc/www-data/favicon.ico
diff --git a/doc/www-data.in/_extras/style.css b/doc/www-data/global.css
similarity index 85%
rename from doc/www-data.in/_extras/style.css
rename to doc/www-data/global.css
index 65b17addd2..d7b10f77ea 100644
--- a/doc/www-data.in/_extras/style.css
+++ b/doc/www-data/global.css
@@ -58,7 +58,7 @@ a:hover, a:active {
  */
 
 h1 {
-    font-size: 2em;
+    font-size: 1.5em;
 }
 
 /*
@@ -186,9 +186,9 @@ table {
 }
 
 
-/* =============================================================================
+/* ===========================================================================
    Layout
-   ========================================================================== */
+   ======================================================================== */
 
 /*
  * Top-level page sections:
@@ -208,15 +208,11 @@ table {
     overflow: hidden;
 }
 
-#header {
-    border-bottom: 1px dotted #3f3f3f;
-}
 
-#footer {
-    border-top: 1px dotted #3f3f3f;
-    clear: both;
+#header {
+   margin-bottom: 5px;
 }
-
+ 
 #footer p, #header p {
     margin: 0 10px;
 }
@@ -233,16 +229,23 @@ table {
   height: 0;
 }
 
-/* =============================================================================
+/* ==========================================================================
    Grid
-   ========================================================================== */
+   ======================================================================== */
 
 .grid {
-    width: 960px;
+    width: 940px;
     overflow: hidden;
     margin-left: auto;
     margin-right: auto;
     padding: 0 10px 0 0;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	
+	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
+	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
+	box-shadow: 0 1px 3px rgba(0,0,0,0.3);
     clear: both;
 }
 
@@ -264,7 +267,7 @@ table {
 .span_1 { width: 70px; }
 .span_2 { width: 150px; }
 .span_3 { width: 230px; }
-.span_4 { width: 310px; }
+.span_4 { width: 303px; }
 .span_5 { width: 390px; }
 .span_6 { width: 470px; }
 .span_7 { width: 550px; }
@@ -319,7 +322,7 @@ body {
 }
 
 #content {
-    padding-bottom: 20px;
+    padding-bottom: 5px;
 }
 
 a { color: #201e9e; }
@@ -330,25 +333,36 @@ a:visited { color: #3f3f3f; }
 }
 
 #logo {
-    width: 170px;
-    height: 170px;
+    width: 120px;
+    height: 120px;
     float: left;
 }
 
 #blurb {
-    margin-top: 9px;
+    margin-bottom: 8px;
     color: #ffffff;
-    background-color: #00468c;
+/*    background-color: #00468c; */
+    background: url('bg_header.png') repeat-x scroll 50% 0 white;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	
+	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
+	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
+	box-shadow: 0 1px 3px rgba(0,0,0,0.3);
 }
 
 #blurb h1 {
-    font-size: 3em;
+    font-size: 1.5em;
     line-height: 1;
 }
 
 #blurb h2 {
-    font-size: 1.5em;
+    font-size: 1.2em;
+    font-weight: normal;
+    font-style: italic;
     line-height: 1;
+    width: 80%;
 }
 
 .front_block {
@@ -358,10 +372,13 @@ a:visited { color: #3f3f3f; }
     padding: 0 10px;
 }
 
-#download {
-    border-top: 1px dotted black;
-    padding-top: 10px;
-    text-align: center;
+.news_block {
+    /*border: 1px dotted black;*/
+    margin-top: 10px;
+    margin-bottom: 10px;
+    margin-left: 230px;
+    margin-right: auto;
+    padding: 0 10px;
 }
 
 #download a {
@@ -369,15 +386,22 @@ a:visited { color: #3f3f3f; }
     text-decoration: none;
 }
 #download a:visited {
-    color: #cfcfcf;
+    color: #eee;
     text-decoration: none;
 }
 
-#download #current {
-    font-size: 150%;
-    border: 2px outset grey;
-    padding: 4px 10px;
+#current_download {
+    font-size: 110%;
+    font-weight: bold;
+    padding: 4px 5px;
     background-color: #ffaa00;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	
+	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
+	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.3);
+	box-shadow: 0 1px 3px rgba(0,0,0,0.3);
 }
 
 #content_cap {
@@ -390,9 +414,9 @@ a:visited { color: #3f3f3f; }
     height: 65px;
 }
 
-/* =============================================================================
+/* ===========================================================================
    Navigation
-   ========================================================================== */
+   ======================================================================= */
 
 #nav {
     width: 740px;
@@ -428,7 +452,7 @@ a:visited { color: #3f3f3f; }
     margin: 0 10px;
 }
 
-#nav ul li.current a {
+#nav ul li.current_download a {
     background-color: rgba(0,0,0,0.5) !important;
 }
 
diff --git a/doc/www-data.in/_extras/logo.png b/doc/www-data/logo.png
similarity index 100%
rename from doc/www-data.in/_extras/logo.png
rename to doc/www-data/logo.png
diff --git a/doc/www-data.in/_extras/mail-logo.png b/doc/www-data/mail-logo.png
similarity index 100%
rename from doc/www-data.in/_extras/mail-logo.png
rename to doc/www-data/mail-logo.png
diff --git a/doc/www-data.in/_extras/robots.txt b/doc/www-data/robots.txt
similarity index 100%
rename from doc/www-data.in/_extras/robots.txt
rename to doc/www-data/robots.txt
diff --git a/scripts/static.py b/scripts/static.py
index e87ab184ac..17651c1977 100755
--- a/scripts/static.py
+++ b/scripts/static.py
@@ -26,7 +26,6 @@ class Config(object):
         self.ignore_file = '_ignore'
         self.corpus_dir = '.'
         self.layout_dir = '_layout'
-        self.extras_dir = '_extras'
         self.output_dir = 'www'
         self.abs_output_path = None
         self.config = {}
@@ -44,9 +43,6 @@ class Config(object):
     def layout_path(self):
         return os.path.join(self.source_path, self.layout_dir)
     @property
-    def extras_path(self):
-        return os.path.join(self.source_path, self.extras_dir)
-    @property
     def output_path(self):
         if self.abs_output_path:
             return self.abs_output_path
@@ -68,7 +64,6 @@ class Config(object):
         config = yaml.load(f)
         f.close()
         self.check('layout_dir', config)
-        self.check('extras_dir', config)
         self.check('output_dir', config)
         self.config = config
         #print config
@@ -217,7 +212,7 @@ class PageHandler(BaseHandler):
         self.environ = make_environ(config.layout_path)
 
     def write(self, name, data):
-        print 'write %s' % name
+        print 'Writing %s' % name
         f = open(os.path.join(self.config.output_path, name), 'w')
         f.write(data)
         f.close
@@ -233,7 +228,7 @@ class PageHandler(BaseHandler):
         else:
             langdesc = default_lang
         text = unicode(text, langdesc['source-encoding'])
-        text = markdown.markdown(text)
+        text = markdown.markdown(text, ['tables'])
         filename = name + langdesc['suffix']
         template = self.environ.get_template(layout, globals=self.config.config)
         page = template.render(
@@ -309,23 +304,12 @@ def load_entries(config):
     entries = []
     corpus = config.get_corpus()
     for name in corpus:
-        print 'load content file "%s"' % name
         scanner = Scanner(name, config)
         for entry in iter(scanner):
             entries.append(entry)
+        print 'Loaded content file "%s"' % name
     return entries
 
-def copy_extras(config):
-    names = os.listdir(config.extras_path)
-    for name in names:
-        srcname = os.path.join(config.extras_path, name)
-        dstname = os.path.join(config.output_path, name)
-        print 'copy %s' % srcname
-        if os.path.isdir(srcname):
-            shutil.copytree(srcname, dstname)
-        else:
-            shutil.copy2(srcname, dstname)
-
 def main():
     config = Config()
     parse_args(config)
@@ -333,7 +317,6 @@ def main():
     renderer = Renderer(config)
     entries = load_entries(config)
     renderer.render(entries)
-    copy_extras(config)
 
 if __name__ == '__main__':
     main()
-- 
GitLab