$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80314 - in website/public_html/live: . common/code development doc generated site-tools site-tools/boost_site site-tools/templates
From: dnljms_at_[hidden]
Date: 2012-08-29 18:37:54
Author: danieljames
Date: 2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
New Revision: 80314
URL: http://svn.boost.org/trac/boost/changeset/80314
Log:
Website: Merge from beta to live
Added:
   website/public_html/live/common/code/boost_version.php
      - copied unchanged from r79638, /website/public_html/beta/common/code/boost_version.php
   website/public_html/live/site-tools/templates/download-template.py
      - copied unchanged from r78698, /website/public_html/beta/site-tools/templates/download-template.py
   website/public_html/live/site-tools/templates/history-template.py
      - copied unchanged from r78698, /website/public_html/beta/site-tools/templates/history-template.py
   website/public_html/live/site-tools/templates/index-template.py
      - copied, changed from r78698, /website/public_html/beta/site-tools/templates/index-template.py
   website/public_html/live/site-tools/templates/news-template.py
      - copied unchanged from r78698, /website/public_html/beta/site-tools/templates/news-template.py
Removed:
   website/public_html/live/site-tools/boost_site/templite.py
   website/public_html/live/site-tools/templates/download-template.html
   website/public_html/live/site-tools/templates/history-template.html
   website/public_html/live/site-tools/templates/index-src.html
   website/public_html/live/site-tools/templates/news-template.html
Properties modified: 
   website/public_html/live/   (props changed)
Text files modified: 
   website/public_html/live/common/code/boost.php                     |     5                                         
   website/public_html/live/common/code/boost_archive.php             |    89 ++++++++++++-----                       
   website/public_html/live/common/code/boost_feed.php                |    59 -----------                             
   website/public_html/live/common/code/boost_filter_boost_libs.php   |    28 +++++                                   
   website/public_html/live/common/code/boost_filters.php             |     9 -                                       
   website/public_html/live/common/code/boost_libraries.php           |    40 ++-----                                 
   website/public_html/live/common/code/boost_utility.php             |    45 +-------                                
   website/public_html/live/development/testing_results.php           |    16 +-                                      
   website/public_html/live/doc/display_build.php                     |    16 +-                                      
   website/public_html/live/doc/display_libs.php                      |    99 +++++--------------                     
   website/public_html/live/doc/libraries.php                         |    67 ++-----------                           
   website/public_html/live/doc/libraries.xml                         |   117 -----------------------                 
   website/public_html/live/generated/download-items.html             |    84 ----------------                        
   website/public_html/live/generated/history-items.html              |   196 ++++++++++++++++++++++++++------------- 
   website/public_html/live/generated/home-items.html                 |    34 +++---                                  
   website/public_html/live/generated/news-items.html                 |    32 +++--                                   
   website/public_html/live/site-tools/boost_site/boostbook_parser.py |     4                                         
   website/public_html/live/site-tools/boost_site/pages.py            |    62 +++++++++--                             
   website/public_html/live/site-tools/boost_site/settings.py         |    11 -                                       
   website/public_html/live/site-tools/boost_site/site_tools.py       |    26 +++--                                   
   website/public_html/live/site-tools/boost_site/state.py            |    55 ++++++----                              
   website/public_html/live/site-tools/boost_site/upgrade.py          |     4                                         
   website/public_html/live/site-tools/boost_site/util.py             |    43 +++++++                                 
   website/public_html/live/site-tools/release.py                     |    10 +-                                      
   website/public_html/live/site-tools/templates/entry-template.html  |    49 ++-------                               
   website/public_html/live/site-tools/templates/index-template.py    |    14 +-                                      
   website/public_html/live/sitemap.xml.php                           |     9 +                                       
   27 files changed, 510 insertions(+), 713 deletions(-)
Modified: website/public_html/live/common/code/boost.php
==============================================================================
--- website/public_html/live/common/code/boost.php	(original)
+++ website/public_html/live/common/code/boost.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -4,7 +4,6 @@
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 */
-$boost_current_version = Array(1,51,0);
 require_once(dirname(__FILE__) . '/boost_config.php');
-require_once(dirname(__FILE__) . '/boost_utility.php');
-?>
+require_once(dirname(__FILE__) . '/boost_version.php');
+boost_set_current_version(1,51,0);
Modified: website/public_html/live/common/code/boost_archive.php
==============================================================================
--- website/public_html/live/common/code/boost_archive.php	(original)
+++ website/public_html/live/common/code/boost_archive.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -45,16 +45,49 @@
 }
 
 function display_from_archive(
-    $params,
     $content_map = array(),
-    $override_extractor = null,
-    $expires = null)
+    $params = array())
 {
-    $params['template'] = dirname(__FILE__)."/template.php";
-    $params['title'] = NULL;
-    $params['charset'] = NULL;
-    $params['content'] = NULL;
+    // Set default values
+
+    $params = array_merge(
+        array(
+            'pattern' => '@^[/]([^/]+)[/](.*)$@',
+            'vpath' => $_SERVER["PATH_INFO"],
+            'archive_subdir' => true,
+            'zipfile' => true,
+            'archive_dir' => ARCHIVE_DIR,
+            'archive_file_prefix' => ARCHIVE_FILE_PREFIX,
+            'use_http_expire_date' => false,
+            'override_extractor' => null,
+            'template' => dirname(__FILE__)."/template.php",
+            'title' => NULL,
+            'charset' => NULL,
+            'content' => NULL,
+        ),
+        $params
+    );
+
+    $params = array_merge($params, get_archive_location(
+        $params['pattern'],
+        $params['vpath'],
+        $params['archive_subdir'],
+        $params['zipfile'],
+        $params['archive_dir'],
+        $params['archive_file_prefix']
+    ));
     
+    // Calculate expiry date if requested.
+
+    $expires = null;
+    if ($settings['use_http_expire_date'])
+    {
+        $compare_version = BoostVersion::from($params['version'])->
+            compare(BoostVersion::current());
+        $expires = $compare_version === -1 ? "+1 year" :
+            ($compare_version === 0 ? "+1 week" : "+1 day");
+    }
+
     // Check file exists.
 
     if ($params['zipfile'])
@@ -102,18 +135,18 @@
     // Choose filter to use
 
     $info_map = array_merge($content_map, array(
-        array('@.*@','@[.](txt|py|rst|jam|v2|bat|sh|xml|toyxml)$@i','text','text/plain'),
-        array('@.*@','@[.](qbk|quickbook)$@i','qbk','text/plain'),
-        array('@.*@','@[.](c|h|cpp|hpp)$@i','cpp','text/plain'),
-        array('@.*@','@[.]png$@i','raw','image/png'),
-        array('@.*@','@[.]gif$@i','raw','image/gif'),
-        array('@.*@','@[.](jpg|jpeg|jpe)$@i','raw','image/jpeg'),
-        array('@.*@','@[.]css$@i','raw','text/css'),
-        array('@.*@','@[.]js$@i','raw','application/x-javascript'),
-        array('@.*@','@[.]pdf$@i','raw','application/pdf'),
-        array('@.*@','@[.](html|htm)$@i','raw','text/html'),
-        array('@.*@','@(/|^)(Jamroot|Jamfile|ChangeLog|configure)$@i','text','text/plain'),
-        array('@.*@','@[.]dtd$@i','raw','application/xml-dtd'),
+        array('@[.](txt|py|rst|jam|v2|bat|sh|xml|toyxml)$@i','text','text/plain'),
+        array('@[.](qbk|quickbook)$@i','qbk','text/plain'),
+        array('@[.](c|h|cpp|hpp)$@i','cpp','text/plain'),
+        array('@[.]png$@i','raw','image/png'),
+        array('@[.]gif$@i','raw','image/gif'),
+        array('@[.](jpg|jpeg|jpe)$@i','raw','image/jpeg'),
+        array('@[.]css$@i','raw','text/css'),
+        array('@[.]js$@i','raw','application/x-javascript'),
+        array('@[.]pdf$@i','raw','application/pdf'),
+        array('@[.](html|htm)$@i','raw','text/html'),
+        array('@(/|^)(Jamroot|Jamfile|ChangeLog|configure)$@i','text','text/plain'),
+        array('@[.]dtd$@i','raw','application/xml-dtd'),
         ));
 
     $preprocess = null;
@@ -122,16 +155,17 @@
 
     foreach ($info_map as $i)
     {
-        if (preg_match($i[1],$params['key']))
+        if (preg_match($i[0],$params['key']))
         {
-            $extractor = $i[2];
-            $type = $i[3];
-            $preprocess = isset($i[4]) ? $i[4] : NULL;
+            $extractor = $i[1];
+            $type = $i[2];
+            $preprocess = isset($i[3]) ? $i[3] : NULL;
             break;
         }
     }
     
-    if ($override_extractor) $extractor = $override_extractor;
+    if ($settings['override_extractor'])
+        $extractor = $settings['override_extractor'];
 
     if (!$extractor) {
         file_not_found($params);
@@ -246,13 +280,10 @@
 // General purpose render callbacks.
 
 function boost_archive_render_callbacks($content, $params) {
-    $version_title =
-        str_replace('_', ' ',
-            preg_replace('@(?<=\d)_(?=\d)@', '.',
-                ucwords($params['version'])));
+    $version = BoostVersion::from($params['version']);
 
     $charset = $params['charset'] ? $params['charset'] : 'us-ascii';
-    $title = $params['title'] ? "$params[title] - $version_title" : 'Boost C++ Libraries';
+    $title = $params['title'] ? "$params[title] - $version" : 'Boost C++ Libraries';
 
     $head = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=${charset}\" />\n";
 
Modified: website/public_html/live/common/code/boost_feed.php
==============================================================================
--- website/public_html/live/common/code/boost_feed.php	(original)
+++ website/public_html/live/common/code/boost_feed.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -4,7 +4,9 @@
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 */
+
 require_once(dirname(__FILE__) . '/boost.php');
+require_once(dirname(__FILE__) . '/boost_utility.php');
 
 class boost_feed
 {
@@ -98,62 +100,7 @@
     
     function sort_by($field)
     {
-        $f = '_field_cmp_'.strtolower(str_replace('-','_',$field)).'_';
-        uasort($this->db,$f);
-    }
-    
-    function echo_download_table($guid)
-    {
-        if(isset($this->db[$guid]['boostbook:download']) && $this->db[$guid]['boostbook:download']) {
-            $link = $this->db[$guid]['boostbook:download'];
-            if(preg_match('@/boost/(\d+)\.(\d+)\.(\d+)/$@', $link, $matches)) {
-                $base_name = 'boost_'.$matches[1].'_'.$matches[2].'_'.$matches[3];
-                
-                /* Pick which files are available by examining the version number.
-                   This could possibly be meta-data in the rss feed instead of being
-                   hardcoded here. */
-                
-                $downloads['unix'][] = $base_name.'.tar.bz2';
-                $downloads['unix'][] = $base_name.'.tar.gz';
-
-                if($matches[1] == 1 && $matches[2] >= 32 && $matches[2] <= 33) {
-                    $downloads['windows'][] = $base_name.'.exe';
-                }
-                else if($matches[1] > 1 || $matches[2] > 34 || ($matches[2] == 34 && $matches[3] == 1)) {
-                    $downloads['windows'][] = $base_name.'.7z';
-                }
-                $downloads['windows'][] = $base_name.'.zip';
-                
-                /* Print the download table. */
-                
-                echo '<table class="download-table">';
-                echo '<caption>Downloads</caption>';
-                echo '<tr><th scope="col">Platform</th><th scope="col">File</th></tr>';
-                foreach($downloads as $platform => $files) {
-                    echo "\n";
-                    echo '<tr><th scope="row"';
-                    if(count($files) > 1) {
-                        echo ' rowspan="'.count($files).'"';
-                    }
-                    echo '>'.htmlentities($platform).'</th>';
-                    foreach($files as $index => $file) {
-                        if($index > 0) echo '</tr><tr>';
-                        echo '<td><a href="'.htmlentities($link.$file.'/download').'">'.
-                            htmlentities($file).'</a></td>';
-                    }
-                    echo '</tr>';
-                }
-                echo '</table>';
-            }
-            else {
-                /* If the link didn't match the normal version number pattern
-                   then just use the old fashioned link to sourceforge. */
-
-                echo '<p><span class="news-download"><a href="'.
-                    htmlentities($link).
-                    '">Download this release.</a></span></p>';
-            }
-        }
+        uasort($this->db, sort_by_field($field));
     }
 }
 ?>
Modified: website/public_html/live/common/code/boost_filter_boost_libs.php
==============================================================================
--- website/public_html/live/common/code/boost_filter_boost_libs.php	(original)
+++ website/public_html/live/common/code/boost_filter_boost_libs.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -136,3 +136,31 @@
         $text );
     return $text;
 }
+
+function _preg_replace_bounds($front_regex,$back_regex,$front_replace,$back_replace,$text)
+{
+    $offset = 0;
+    $result = '';
+    while (TRUE)
+    {
+        $subject = substr($text,$offset);
+        if (preg_match($front_regex,$subject,$begin,PREG_OFFSET_CAPTURE) == 0 ||
+            preg_match($back_regex,$subject,$end,PREG_OFFSET_CAPTURE,
+                $begin[0][1]+strlen($begin[0][0])) == 0
+            )
+        { break; }
+        else
+        {
+            $result .= substr($subject,0,$begin[0][1]);
+            $result .= preg_replace($front_regex,$front_replace,$begin[0][0]);
+            $result .= substr(
+                $subject,
+                $begin[0][1]+strlen($begin[0][0]),
+                $end[0][1]-($begin[0][1]+strlen($begin[0][0])) );
+            $result .= preg_replace($back_regex,$back_replace,$end[0][0]);
+            $offset += $end[0][1]+strlen($end[0][0]);
+        }
+    }
+    if ($result === '') { return $text; }
+    else { return $result . substr($text,$offset); }
+}
Modified: website/public_html/live/common/code/boost_filters.php
==============================================================================
--- website/public_html/live/common/code/boost_filters.php	(original)
+++ website/public_html/live/common/code/boost_filters.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -11,13 +11,8 @@
 
 function alter_title($params, $text)
 {
-    $version_title =
-    	str_replace('_', ' ',
-    		preg_replace('@(?<=\d)_(?=\d)@', '.',
-    			ucwords($params['version'])));
-
-	return str_ireplace('</title>',
-		" - $version_title</title>", $text);
+    $version = BoostVersion::from($params['version']);
+    return str_ireplace('</title>', " - $version</title>", $text);
 }
 
 function html_init(&$params)
Modified: website/public_html/live/common/code/boost_libraries.php
==============================================================================
--- website/public_html/live/common/code/boost_libraries.php	(original)
+++ website/public_html/live/common/code/boost_libraries.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -4,18 +4,14 @@
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 */
-require_once(dirname(__FILE__) . '/boost.php');
+
+require_once(dirname(__FILE__) . '/boost_utility.php');
+require_once(dirname(__FILE__) . '/boost_version.php');
 
 class boost_libraries
 {
     var $categories = array();
     var $db = array();
-    var $build_values = array(
-        'header-only' => 'Header only',
-        'autolink' => 'Automatic linking',
-        'autolink-dependency' => 'Automatic linking due to dependency',
-        'build' => 'Separately built'
-    );
     
     function boost_libraries($xml_file)
     {
@@ -65,6 +61,12 @@
                         else { $lib[$val['tag']] = ''; }
                     }
                     break;
+                    case 'boost-version':
+                    {
+                        if (isset($val['value'])) { $lib[$val['tag']] = BoostVersion::from($val['value']); }
+                        else { $lib[$val['tag']] = ''; }
+                    }
+                    break;
                     case 'std-proposal':
                     case 'std-tr1':
                     {
@@ -77,24 +79,6 @@
                         $lib[$val['tag']] = ($value == 'true');
                     }
                     break;
-                    case 'build':
-                    {
-                        $value = isset($val['value']) ? trim($val['value']) : '';
-                        if(!isset($this->build_values[$value])) {
-                            echo 'Invalid value for build: ', htmlentities($value), "\n";
-                            exit(0);
-                        }
-                        $lib['build'] = $value;
-
-                        // Also set the old style fields for the filters.
-                        if ($value == 'autolink-dependency') {
-                            $lib['autolink'] = true;
-                        }
-                        else if ($value != 'build') {
-                            $lib[$value] = true;
-                        }
-                    }
-                    break;
                     case 'category':
                     {
                         if(isset($val['value'])) {
@@ -118,15 +102,13 @@
     
     function sort_by($field)
     {
-        $f = '_field_cmp_'.strtolower(str_replace('-','_',$field)).'_';
-        uasort($this->db, $f);
+        uasort($this->db, sort_by_field($field));
     }
 
     function get($sort = null, $filter = null) {
         $libs = $filter ? array_filter($this->db, $filter) : $this->db;
         if($sort) {
-            $f = '_field_cmp_'.strtolower(str_replace('-','_',$sort)).'_';
-            uasort($libs, $f);
+            uasort($libs, sort_by_field($sort));
         }
         return $libs;
     }
Modified: website/public_html/live/common/code/boost_utility.php
==============================================================================
--- website/public_html/live/common/code/boost_utility.php	(original)
+++ website/public_html/live/common/code/boost_utility.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -4,38 +4,17 @@
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 */
-require_once(dirname(__FILE__) . '/boost.php');
 
+/**
+ * Return a callback to comparing the given field.
+ * @return callable
+ */
 
-function _preg_replace_bounds($front_regex,$back_regex,$front_replace,$back_replace,$text)
+function sort_by_field($field)
 {
-    $offset = 0;
-    $result = '';
-    while (TRUE)
-    {
-        $subject = substr($text,$offset);
-        if (preg_match($front_regex,$subject,$begin,PREG_OFFSET_CAPTURE) == 0 ||
-            preg_match($back_regex,$subject,$end,PREG_OFFSET_CAPTURE,
-                $begin[0][1]+strlen($begin[0][0])) == 0
-            )
-        { break; }
-        else
-        {
-            $result .= substr($subject,0,$begin[0][1]);
-            $result .= preg_replace($front_regex,$front_replace,$begin[0][0]);
-            $result .= substr(
-                $subject,
-                $begin[0][1]+strlen($begin[0][0]),
-                $end[0][1]-($begin[0][1]+strlen($begin[0][0])) );
-            $result .= preg_replace($back_regex,$back_replace,$end[0][0]);
-            $offset += $end[0][1]+strlen($end[0][0]);
-        }
-    }
-    if ($result === '') { return $text; }
-    else { return $result . substr($text,$offset); }
+    return '_field_cmp_'.strtolower(str_replace('-','_',$field)).'_';
 }
 
-
 function _field_cmp_($r,$a,$b)
 {
     if ($r == 0) { return _field_cmp_name_($a,$b); }
@@ -45,16 +24,9 @@
 function _field_cmp_authors_($a,$b)
 { return _field_cmp_(strcmp($a['authors'],$b['authors']),$a,$b); }
 
-function _field_cmp_autolink_($a,$b)
-{ return _field_cmp_(_field_cmp_less_($a['autolink'],$b['autolink']),$a,$b); }
-
 function _field_cmp_boost_version_($a,$b)
 {
-    $i = explode('.',$a['boost-version']);
-    $j = explode('.',$b['boost-version']);
-    if ($i[0] == $j[0] && $i[1] == $j[1]) { return _field_cmp_($i[2]-$j[2],$a,$b); }
-    else if ($i[0] == $j[0]) { return _field_cmp_($i[1]-$j[1],$a,$b); }
-    else { return _field_cmp_($i[0]-$j[0],$a,$b); }
+    return $a['boost-version']->compare($b['boost-version']);
 }
 
 function _field_cmp_description_($a,$b)
@@ -66,9 +38,6 @@
 function _field_cmp_guid_($a,$b)
 { return strcmp($a['guid'],$b['guid']); }
 
-function _field_cmp_header_only_($a,$b)
-{ return _field_cmp_(_field_cmp_less_($a['header-only'],$b['header-only']),$a,$b); }
-
 function _field_cmp_key_($a,$b)
 { return strcmp($a['key'],$b['key']); }
 
Modified: website/public_html/live/development/testing_results.php
==============================================================================
--- website/public_html/live/development/testing_results.php	(original)
+++ website/public_html/live/development/testing_results.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -2,14 +2,14 @@
 require_once(dirname(__FILE__) . '/../common/code/boost_archive.php');
 
 display_from_archive(
-  get_archive_location(
-    '/^[\/]([^\/]+)[\/](.*)$/',$_SERVER["PATH_INFO"],
-    false, // the result zips don't have the tag subdir
-    true, // stored as a zipfile
-    RESULTS_DIR
-  ),
   array(
-  //~ array(version-regex,path-regex,raw|simple|text|cpp|boost_book_html|boost_libs_html,mime-type),
+  //~ array(path-regex,raw|simple|text|cpp|boost_book_html|boost_libs_html,mime-type),
   ),
-  'raw' // we always want raw output
+  array(
+    'pattern' => '/^[\/]([^\/]+)[\/](.*)$/',
+    'archive_subdir' => false, // the result zips don't have the tag subdir
+    'zipfile' => true, // stored as a zipfile
+    'archive_dir' => RESULTS_DIR,
+    'override_extractor' => 'raw' // we always want raw output
+  )
 );
Modified: website/public_html/live/doc/display_build.php
==============================================================================
--- website/public_html/live/doc/display_build.php	(original)
+++ website/public_html/live/doc/display_build.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -22,13 +22,13 @@
 }
 
 display_from_archive(
-  get_archive_location(
-    '@^[/]([^/]+)[/](.*)$@',
-    $_SERVER["PATH_INFO"],
-    false, false
+  array(
+  //~ array(path-regex,raw|simple|text|cpp|boost_book_html|boost_libs_html,mime-type[,preprocess hook]),
+  array('@^boost-build/index[.]html$@i','simple','text/html', 'add_boost_build_analytics'),
+  array('@[.](html|htm)$@i','boost_book_html','text/html')
   ),
   array(
-  //~ array(version-regex,path-regex,raw|simple|text|cpp|boost_book_html|boost_libs_html,mime-type[,preprocess hook]),
-  array('@.*@','@^boost-build/index[.]html$@i','simple','text/html', 'add_boost_build_analytics'),
-  array('@.*@','@[.](html|htm)$@i','boost_book_html','text/html')
-));
+    'archive_subdir' => false,
+    'zipfile' => false,
+  )
+);
Modified: website/public_html/live/doc/display_libs.php
==============================================================================
--- website/public_html/live/doc/display_libs.php	(original)
+++ website/public_html/live/doc/display_libs.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -18,32 +18,6 @@
 
 require_once(dirname(__FILE__) . '/../common/code/boost_archive.php');
 
-function boost_compare_version($version)
-{
-    if ($version && preg_match('@([0-9]+)_([0-9]+)_([0-9]+)@',$version,$vinfo))
-    {
-        array_shift($vinfo);
-
-        global $boost_current_version;
-        $v = $boost_current_version[0];
-        $r = $boost_current_version[1];
-        $p = $boost_current_version[2];
-
-        return
-          $v < $vinfo[0] ? 1 :
-          ($v > $vinfo[0] ? -1 :
-          ($r < $vinfo[1] ? 1 :
-          ($r > $vinfo[1] ? -1 :
-          ($p < $vinfo[2] ? 1 :
-          ($p > $vinfo[2] ? -1
-            : 0)))));
-    }
-    else
-    {
-        return FALSE;
-    }
-}
-
 function add_spirit_analytics($content) {
     $server = $_SERVER['HTTP_HOST'];
     
@@ -80,56 +54,39 @@
     return str_ireplace('</head>', $analytics.'</head>', $content);
 }
 
-$location = get_archive_location('@^[/]([^/]+)[/](.*)$@',$_SERVER["PATH_INFO"],true,false);
-$beta_site = strpos($_SERVER['HTTP_HOST'], 'beta') !== FALSE ||
-    strpos($_SERVER['HTTP_HOST'], 'localhost') !== FALSE;
-$beta_docs = strpos($location['version'], 'beta') !== FALSE ||
-    strpos($location['version'], 'snapshot') !== FALSE;
-
-$compare_version = boost_compare_version($location['version']);
-/*
-if (!$beta_docs && $compare_version === 1) {
-    file_not_found($location['file'],
-        "Documentation for this version has not been uploaded yet. ".
-        "Documentation is only uploaded when it's fully released, ".
-        "you can see the documentation for a beta version or snapshot in the download.");
-    return;
-}
- */
-
 display_from_archive(
-  $location,
   array(
   //~ special cases that can't be processed at all (some redirects)
-  array('@.*@','@^libs/gil/doc/.*(html|htm)$@i','raw','text/html'),
-  array('@.*@','@^libs/preprocessor/doc/.*(html|htm)$@i','raw','text/html'),
-  array('@.*@','@^libs/test/doc/components/test_tools/reference/.*(html|htm)$@i','raw','text/html'),
-  array('@.*@','@^libs/test/.*(html|htm)$@i','simple','text/html'),
-  array('@.*@','@^libs/spirit/.*(html|htm)$@i','simple','text/html', 'add_spirit_analytics'),
-  array('@.*@','@^libs/fusion/.*(html|htm)$@i','basic','text/html', 'add_spirit_analytics'),
-  array('@.*@','@^libs/wave/.*(html|htm)$@i','raw','text/html'),
-  array('@.*@','@^libs/range/doc/.*(html|htm)$@i','raw','text/html'),
+  array('@^libs/gil/doc/.*(html|htm)$@i','raw','text/html'),
+  array('@^libs/preprocessor/doc/.*(html|htm)$@i','raw','text/html'),
+  array('@^libs/test/doc/components/test_tools/reference/.*(html|htm)$@i','raw','text/html'),
+  array('@^libs/test/.*(html|htm)$@i','simple','text/html'),
+  array('@^libs/spirit/.*(html|htm)$@i','simple','text/html', 'add_spirit_analytics'),
+  array('@^libs/fusion/.*(html|htm)$@i','basic','text/html', 'add_spirit_analytics'),
+  array('@^libs/wave/.*(html|htm)$@i','raw','text/html'),
+  array('@^libs/range/doc/.*(html|htm)$@i','raw','text/html'),
   //~ special cases that can't be embeded in the standard frame
-  array('@.*@','@^libs/locale/doc/.*(html|htm)$@i','raw','text/html'),
-  array('@.*@','@^libs/iostreams/doc/.*(html|htm)$@i','simple','text/html'),
-  array('@.*@','@^libs/serialization/doc/.*(html|htm)$@i','simple','text/html'),
-  array('@.*@','@^libs/filesystem/(v\d/)?doc/.*(html|htm)$@i','simple','text/html'),
-  array('@.*@','@^libs/system/doc/.*(html|htm)$@i','simple','text/html'),
-  array('@.*@','@^libs/numeric/conversion/doc/.*(html|htm)$@i','simple','text/html'),
-  array('@.*@','@^libs/optional/doc/.*(html|htm)$@i','simple','text/html'),
-  array('@.*@','@^libs/polygon/doc/.*(html|htm)$@i','simple','text/html'),
+  array('@^libs/locale/doc/.*(html|htm)$@i','raw','text/html'),
+  array('@^libs/iostreams/doc/.*(html|htm)$@i','simple','text/html'),
+  array('@^libs/serialization/doc/.*(html|htm)$@i','simple','text/html'),
+  array('@^libs/filesystem/(v\d/)?doc/.*(html|htm)$@i','simple','text/html'),
+  array('@^libs/system/doc/.*(html|htm)$@i','simple','text/html'),
+  array('@^libs/numeric/conversion/doc/.*(html|htm)$@i','simple','text/html'),
+  array('@^libs/optional/doc/.*(html|htm)$@i','simple','text/html'),
+  array('@^libs/polygon/doc/.*(html|htm)$@i','simple','text/html'),
   //~ default to processed output for libs and tools
-  array('@.*@','@^libs/[^/]+/doc/html/.*(html|htm)$@i','basic','text/html'),
-  array('@.*@','@^libs/[^/]+/doc/[^/]+/html/.*(html|htm)$@i','basic','text/html'),
-  array('@.*@','@^libs/[^/]+/doc/[^/]+/doc/html/.*(html|htm)$@i','basic','text/html'),
-  array('@.*@','@^libs.*(html|htm)$@i','basic','text/html'),
-  array('@.*@','@^tools.*(html|htm)$@i','basic','text/html'),
-  array('@.*@','@^doc/html/.*html$@i','boost_book_basic','text/html'),
-  array('@.*@','@^more/.*html$@i','basic','text/html'),
+  array('@^libs/[^/]+/doc/html/.*(html|htm)$@i','basic','text/html'),
+  array('@^libs/[^/]+/doc/[^/]+/html/.*(html|htm)$@i','basic','text/html'),
+  array('@^libs/[^/]+/doc/[^/]+/doc/html/.*(html|htm)$@i','basic','text/html'),
+  array('@^libs.*(html|htm)$@i','basic','text/html'),
+  array('@^tools.*(html|htm)$@i','basic','text/html'),
+  array('@^doc/html/.*html$@i','boost_book_basic','text/html'),
+  array('@^more/.*html$@i','basic','text/html'),
   //~ the headers are text files displayed in an embeded page
-  array('@.*@','@^boost/.*$@i','cpp','text/plain')
+  array('@^boost/.*$@i','cpp','text/plain')
   ),
-  null,
-  $compare_version === -1 ? "+1 year" :
-    ($compare_version === 0 ? "+1 week" : "+1 day")
+  array(
+    'use_http_expire_date' => true,
+    'zipfile' => false,
+  )
 );
Modified: website/public_html/live/doc/libraries.php
==============================================================================
--- website/public_html/live/doc/libraries.php	(original)
+++ website/public_html/live/doc/libraries.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -3,6 +3,7 @@
 // Change this when developing.
 define('USE_SERIALIZED_INFO', true);
 
+require_once(dirname(__FILE__) . '/../common/code/boost.php');
 require_once(dirname(__FILE__) . '/../common/code/boost_libraries.php');
 
 function boost_title()
@@ -20,43 +21,6 @@
     }
 }
 
-function boost_version($v,$r,$p)
-{
-    if (isset($_SERVER["PATH_INFO"]))
-    {
-        // PATH_INFO is set for redirects from a versioned URL.
-
-        $vinfo = array();
-        preg_match('@([0-9]+)_([0-9]+)_([0-9]+)@',$_SERVER["PATH_INFO"],$vinfo);
-        if (isset($vinfo[0]))
-        {
-            return
-              ($v < $vinfo[1]) ||
-              ($v == $vinfo[1] && $r < $vinfo[2]) ||
-              ($v == $vinfo[1] && $r == $vinfo[2] && $p <= $vinfo[3]);
-        }
-        else
-        {
-            return FALSE;
-        }
-    }
-    else
-    {
-        // PATH_INFO isn't set, so viewing the plain libraries
-        // page. Only display current libraries.
-
-        global $boost_current_version;
-        return
-            ($v < $boost_current_version[0]) ||
-            ($v == $boost_current_version[0] &&
-                $r < $boost_current_version[1]) || 
-            ($v == $boost_current_version[0] &&
-                $r == $boost_current_version[1] &&
-                $p <= $boost_current_version[2]);
-        return FALSE;
-    }
-}
-
 $libs = USE_SERIALIZED_INFO ?
         unserialize(file_get_contents(dirname(__FILE__) . '/../generated/libraries.txt')) :
         new boost_libraries(dirname(__FILE__) . '/libraries.xml');
@@ -70,15 +34,13 @@
 $filter_fields = Array(
     'std-proposal' => 'Standard Proposals',
     'std-tr1' => 'TR1 libraries',
-    'header-only' => 'Header Only Libraries',
-    'autolink' => 'Automatic Linking');
+    'header-only' => '[old]',
+    'autolink' => '[old]');
 $sort_fields =  Array(
     'name' => 'Name',
     'boost-version' => 'First Release',
     'std-proposal' => 'STD Proposal',
     'std-tr1' => 'STD::TR1',
-    'header-only' => 'Header Only Use',
-    'autolink' => 'Automatic Linking',
     'key' => 'Key'
 );
 $display_sort_fields = Array(
@@ -98,6 +60,9 @@
     if(!isset($filter_fields[$filter_value])) {
         echo 'Invalid filter field.'; exit(0);
     }
+    if ($filter_fields[$filter_value] == '[old]') {
+        echo 'Filter field no longer supported.'; exit(0);
+    }
 }
 else if(strpos($view_value, 'category_') === 0) {
     $category_value = substr($view_value, strlen('category_'));
@@ -131,9 +96,7 @@
 function library_filter($lib) {
   global $filter_value, $category_value;
 
-  $libversion = explode('.',$lib['boost-version']);
-
-  return boost_version($libversion[0],$libversion[1],$libversion[2]) &&
+  return BoostVersion::page()->compare($lib['boost-version']) >= 0 &&
       (!$filter_value || ($lib[$filter_value] && $lib[$filter_value] !== 'false')) &&
       (!isset($_GET['filter']) || $lib[$_GET['filter']]) &&
       (!$category_value || $category_value === 'all' ||
@@ -152,7 +115,6 @@
     }
     else
     {
-      global $boost_current_version;
       $docref = '/doc/libs/release/'.$lib['documentation'];
     }
     print ''.($lib['name'] ? $lib['name'] : $lib['key']).'';
@@ -168,7 +130,7 @@
 }
 function libavailable($lib)
 {
-  print ($lib['boost-version'] ? $lib['boost-version'] : ' ');
+  print ($lib['boost-version'] ? "{$lib['boost-version']}" : ' ');
 }
 function libstandard($lib)
 {
@@ -177,13 +139,6 @@
   if ($lib['std-tr1']) { $p[] = 'TR1'; }
   print ($p ? implode(', ',$p) : ' ');
 }
-function libbuildlink($lib, $build_values)
-{
-  if (!empty($lib['build']))
-    print $build_values[$lib['build']];
-  else
-    print ' ';
-}
 function libcategories($lib, $categories)
 {
   $first = true;
@@ -271,7 +226,9 @@
                       <li><?php option_link($description, 'view', $key); ?></li><?php
                     endforeach; ?>
                     <?php foreach($filter_fields as $key => $description) : ?>
+                      <?php if (!preg_match('@^\[.*\]$@', $description)) : ?>
                       <li><?php option_link($description, 'view', 'filtered_'.$key); ?></li>
+                      <?php endif; ?>
                     <?php endforeach; ?>
                     </ul>
                   </div>
@@ -312,10 +269,6 @@
 
                     <dd><?php libstandard($lib); ?></dd>
 
-                    <dt>Build & Link</dt>
-
-                    <dd><?php libbuildlink($lib, $libs->build_values); ?></dd>
-
                     <dt>Categories</dt>
 
                     <dd><?php libcategories($lib, $libs->categories); ?></dd>
Modified: website/public_html/live/doc/libraries.xml
==============================================================================
--- website/public_html/live/doc/libraries.xml	(original)
+++ website/public_html/live/doc/libraries.xml	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -85,7 +85,6 @@
     <documentation>libs/accumulators/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -97,7 +96,6 @@
     <documentation>libs/algorithm/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Algorithms</category>
   </library>
   <library>
@@ -110,7 +108,6 @@
     <documentation>libs/algorithm/minmax/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Algorithms</category>
   </library>
   <library>
@@ -122,7 +119,6 @@
     <documentation>libs/algorithm/string/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>String</category>
     <category>Algorithms</category>
   </library>
@@ -136,7 +132,6 @@
     <documentation>libs/any/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Data</category>
   </library>
   <library>
@@ -149,7 +144,6 @@
     <documentation>libs/array/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
   </library>
   <library>
@@ -162,7 +156,6 @@
     <documentation>libs/asio/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink-dependency</build>
     <category>Concurrent</category>
     <category>IO</category>
   </library>
@@ -176,7 +169,6 @@
     <documentation>libs/assign/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>IO</category>
   </library>
   <library>
@@ -190,7 +182,6 @@
     <documentation>libs/bimap/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Data</category>
   </library>
@@ -208,7 +199,6 @@
     <documentation>libs/bind/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -221,7 +211,6 @@
     <documentation>libs/bind/mem_fn.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -235,7 +224,6 @@
     <documentation>libs/bind/ref.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -247,7 +235,6 @@
     <documentation>libs/chrono/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Domain</category>
     <category>System</category>
   </library>
@@ -261,7 +248,6 @@
     <documentation>libs/circular_buffer/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
   </library>
   <library>
@@ -274,7 +260,6 @@
     <documentation>libs/compatibility/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>workarounds</category>
   </library>
   <library>
@@ -287,7 +272,6 @@
     libs/concept_check/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Generic</category>
     <category>Correctness</category>
   </library>
@@ -301,7 +285,6 @@
     <documentation>libs/config/config.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>workarounds</category>
   </library>
   <library>
@@ -313,7 +296,6 @@
     <documentation>libs/container/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Data</category>
   </library>
@@ -326,7 +308,6 @@
     <documentation>libs/context/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Concurrent</category>
     <category>System</category>
   </library>
@@ -339,7 +320,6 @@
     <documentation>libs/conversion/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>String</category>
     <category>Miscellaneous</category>
   </library>
@@ -355,7 +335,6 @@
     <documentation>libs/crc/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Domain</category>
   </library>
   <library>
@@ -368,7 +347,6 @@
     <documentation>libs/date_time/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Domain</category>
     <category>System</category>
   </library>
@@ -388,7 +366,6 @@
     libs/dynamic_bitset/dynamic_bitset.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
   </library>
   <library>
@@ -402,7 +379,6 @@
     <documentation>libs/exception/doc/boost-exception.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Emulation</category>
   </library>
   <library>
@@ -416,7 +392,6 @@
     <documentation>libs/filesystem/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>System</category>
   </library>
   <library>
@@ -429,7 +404,6 @@
     <documentation>libs/flyweight/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Patterns</category>
   </library>
   <library>
@@ -451,7 +425,6 @@
     <documentation>libs/foreach/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Algorithms</category>
     <category>Emulation</category>
   </library>
@@ -472,7 +445,6 @@
     <documentation>libs/format/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>String</category>
     <category>IO</category>
   </library>
@@ -486,7 +458,6 @@
     <documentation>libs/function/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
     <category>Programming</category>
   </library>
@@ -501,7 +472,6 @@
     <documentation>libs/function_types/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Generic</category>
     <category>Metaprogramming</category>
   </library>
@@ -516,7 +486,6 @@
     <documentation>libs/functional/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -529,7 +498,6 @@
     <documentation>libs/functional/hash/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -541,7 +509,6 @@
     <documentation>libs/functional/factory/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -553,7 +520,6 @@
     <documentation>libs/functional/forward/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -566,7 +532,6 @@
     <documentation>libs/functional/overloaded_function/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -579,7 +544,6 @@
     <documentation>libs/fusion/doc/html/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Metaprogramming</category>
     <category>Data</category>
   </library>
@@ -592,7 +556,6 @@
     <documentation>libs/geometry/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Algorithms</category>
     <category>Math</category>
   </library>
@@ -605,7 +568,6 @@
     <documentation>libs/gil/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Iterators</category>
     <category>Algorithms</category>
@@ -624,7 +586,6 @@
     <documentation>libs/graph/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Containers</category>
     <category>Iterators</category>
     <category>Algorithms</category>
@@ -638,7 +599,6 @@
     <documentation>libs/heap/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Data</category>
   </library>
   <library>
@@ -651,7 +611,6 @@
     <documentation>libs/icl/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Data</category>
   </library>
@@ -670,7 +629,6 @@
     <documentation>libs/integer/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -683,7 +641,6 @@
     <documentation>libs/interprocess/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Concurrent</category>
   </library>
   <library>
@@ -695,7 +652,6 @@
     <documentation>libs/intrusive/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
   </library>
   <library>
@@ -710,7 +666,6 @@
     <documentation>libs/io/doc/ios_state.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>IO</category>
   </library>
   <library>
@@ -723,7 +678,6 @@
     <documentation>libs/iostreams/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>String</category>
     <category>IO</category>
   </library>
@@ -740,7 +694,6 @@
     <documentation>libs/iterator/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Iterators</category>
   </library>
   <library>
@@ -753,7 +706,6 @@
     <documentation>libs/lambda/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -767,7 +719,6 @@
     <documentation>libs/conversion/lexical_cast.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>String</category>
     <category>Miscellaneous</category>
   </library>
@@ -781,7 +732,6 @@
     <documentation>libs/local_function/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -793,7 +743,6 @@
     <documentation>libs/locale/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>build</build>
     <category>String</category>
   </library>
   <library>
@@ -805,7 +754,6 @@
     <documentation>doc/html/tribool.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Miscellaneous</category>
   </library>
   <library>
@@ -828,7 +776,6 @@
     <documentation>libs/math/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -841,7 +788,6 @@
     <documentation>libs/math/doc/common_factor.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -853,7 +799,6 @@
     <documentation>libs/math/doc/octonion/html/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -865,7 +810,6 @@
     <documentation>libs/math/doc/quaternion/html/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -877,7 +821,6 @@
     <documentation>libs/math/doc/sf_and_dist/html/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Math</category>
   </library>
   <library>
@@ -890,7 +833,6 @@
     <documentation>libs/math/doc/sf_and_dist/html/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -902,7 +844,6 @@
     <documentation>libs/move/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Emulation</category>
   </library>
   <library>
@@ -915,7 +856,6 @@
     <documentation>libs/mpi/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Concurrent</category>
   </library>
   <library>
@@ -933,7 +873,6 @@
     <documentation>libs/mpl/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Metaprogramming</category>
   </library>
   <library>
@@ -945,7 +884,6 @@
     <documentation>libs/msm/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>State</category>
   </library>
   <library>
@@ -959,7 +897,6 @@
     <documentation>libs/multi_array/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Math</category>
   </library>
@@ -975,7 +912,6 @@
     <documentation>libs/multi_index/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Data</category>
   </library>
@@ -990,7 +926,6 @@
     libs/numeric/conversion/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
     <category>Miscellaneous</category>
   </library>
@@ -1006,7 +941,6 @@
     libs/numeric/interval/doc/interval.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -1020,7 +954,6 @@
     <documentation>libs/numeric/ublas/doc/index.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -1033,7 +966,6 @@
     <documentation>libs/optional/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Miscellaneous</category>
   </library>
   <library>
@@ -1047,7 +979,6 @@
     libs/parameter/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Programming</category>
     <category>Emulation</category>
   </library>
@@ -1061,7 +992,6 @@
     <documentation>libs/phoenix/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -1073,7 +1003,6 @@
     <documentation>libs/polygon/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Miscellaneous</category>
   </library>
   <library>
@@ -1085,7 +1014,6 @@
     <documentation>libs/pool/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Memory</category>
   </library>
   <library>
@@ -1098,7 +1026,6 @@
     <documentation>libs/preprocessor/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Preprocessor</category>
   </library>
   <library>
@@ -1113,7 +1040,6 @@
     <documentation>libs/program_options/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>IO</category>
     <category>Miscellaneous</category>
   </library>
@@ -1127,7 +1053,6 @@
     <documentation>libs/property_map/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Generic</category>
   </library>
@@ -1141,7 +1066,6 @@
     <documentation>libs/property_tree/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Data</category>
   </library>
@@ -1154,7 +1078,6 @@
     <documentation>libs/proto/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Metaprogramming</category>
   </library>
   <library>
@@ -1168,7 +1091,6 @@
     libs/ptr_container/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Data</category>
   </library>
@@ -1185,7 +1107,6 @@
     <documentation>libs/python/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <!-- <build></build> -->
     <category>Inter-language</category>
   </library>
   <library>
@@ -1198,7 +1119,6 @@
     <documentation>libs/random/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -1211,7 +1131,6 @@
     <documentation>libs/range/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Algorithms</category>
   </library>
   <library>
@@ -1223,7 +1142,6 @@
     <documentation>libs/ratio/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -1235,7 +1153,6 @@
     <documentation>libs/rational/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Math</category>
   </library>
   <library>
@@ -1247,7 +1164,6 @@
     <documentation>libs/regex/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>autolink</build>
     <category>String</category>
   </library>
   <library>
@@ -1259,7 +1175,6 @@
     <documentation>libs/scope_exit/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Emulation</category>
   </library>
   <library>
@@ -1273,7 +1188,6 @@
     libs/serialization/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>IO</category>
   </library>
   <library>
@@ -1286,7 +1200,6 @@
     <documentation>libs/signals/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Function-objects</category>
     <category>Patterns</category>
   </library>
@@ -1300,7 +1213,6 @@
     <documentation>libs/signals2/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
     <category>Patterns</category>
   </library>
@@ -1314,7 +1226,6 @@
     <documentation>libs/smart_ptr/smart_ptr.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Memory</category>
   </library>
   <library>
@@ -1327,7 +1238,6 @@
     <documentation>libs/static_assert/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Generic</category>
     <category>Metaprogramming</category>
     <category>Correctness</category>
@@ -1342,7 +1252,6 @@
     <documentation>libs/spirit/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>String</category>
     <category>Parsing</category>
   </library>
@@ -1357,7 +1266,6 @@
     <documentation>libs/statechart/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>State</category>
   </library>
   <library>
@@ -1370,7 +1278,6 @@
     <documentation>libs/system/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>System</category>
   </library>
   <library>
@@ -1383,7 +1290,6 @@
     <documentation>libs/test/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Correctness</category>
   </library>
   <library>
@@ -1395,7 +1301,6 @@
     <documentation>libs/thread/</documentation>
     <std-proposal>true</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>Concurrent</category>
     <category>System</category>
   </library>
@@ -1409,7 +1314,6 @@
     <documentation>libs/timer/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Miscellaneous</category>
   </library>
   <library>
@@ -1422,7 +1326,6 @@
     <documentation>libs/tokenizer/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>String</category>
     <category>Iterators</category>
   </library>
@@ -1441,7 +1344,6 @@
     <documentation>libs/tr1/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Miscellaneous</category>
   </library>
   <library>
@@ -1454,7 +1356,6 @@
     <documentation>libs/tuple/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Data</category>
   </library>
   <library>
@@ -1467,7 +1368,6 @@
     <documentation>libs/type_traits/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Generic</category>
     <category>Metaprogramming</category>
   </library>
@@ -1480,7 +1380,6 @@
     <documentation>libs/typeof/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Emulation</category>
   </library>
   <library>
@@ -1492,7 +1391,6 @@
     <documentation>libs/units/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Domain</category>
   </library>
   <library>
@@ -1504,7 +1402,6 @@
     <documentation>libs/unordered/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>true</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
   </library>
   <library>
@@ -1518,7 +1415,6 @@
     <documentation>libs/utility/utility.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Algorithms</category>
     <category>Function-objects</category>
     <category>Memory</category>
@@ -1535,7 +1431,6 @@
     <documentation>libs/utility/call_traits.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Generic</category>
   </library>
   <library>
@@ -1547,7 +1442,6 @@
     <documentation>libs/utility/compressed_pair.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Data</category>
     <category>Patterns</category>
   </library>
@@ -1562,7 +1456,6 @@
     <documentation>libs/utility/enable_if.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Generic</category>
   </library>
   <library>
@@ -1575,7 +1468,6 @@
     <documentation>libs/utility/identity_type/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Preprocessor</category>
   </library>
   <library>
@@ -1589,7 +1481,6 @@
     libs/utility/in_place_factories.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Generic</category>
   </library>
   <library>
@@ -1602,7 +1493,6 @@
     <documentation>libs/utility/operators.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Iterators</category>
     <category>Generic</category>
     <category>Math</category>
@@ -1617,7 +1507,6 @@
     <documentation>libs/utility/utility.htm#result_of</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Function-objects</category>
   </library>
   <library>
@@ -1629,7 +1518,6 @@
     <documentation>libs/utility/swap.html</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Miscellaneous</category>
   </library>
   <library>
@@ -1642,7 +1530,6 @@
     <documentation>libs/utility/value_init.htm</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Miscellaneous</category>
   </library>
   <library>
@@ -1654,7 +1541,6 @@
     <documentation>libs/uuid/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Data</category>
     <category>Domain</category>
   </library>
@@ -1668,7 +1554,6 @@
     <documentation>libs/variant/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>Containers</category>
     <category>Data</category>
   </library>
@@ -1684,7 +1569,6 @@
     <documentation>libs/wave/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>autolink</build>
     <category>String</category>
   </library>
   <library>
@@ -1699,7 +1583,6 @@
     <documentation>libs/xpressive/</documentation>
     <std-proposal>false</std-proposal>
     <std-tr1>false</std-tr1>
-    <build>header-only</build>
     <category>String</category>
   </library>
 </boost>
Modified: website/public_html/live/generated/download-items.html
==============================================================================
--- website/public_html/live/generated/download-items.html	(original)
+++ website/public_html/live/generated/download-items.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -1,11 +1,8 @@
-            <div class="section-body">
-              <ul class="toc">
+<ul class="toc">
 <li>Current Release</li>
-
-                <li>Old Boost Releases</li>
-
-                <li>Subversion Repository</li>
-              </ul>
+<li>Old Boost Releases</li>
+<li>Subversion Repository</li>
+</ul>
 <h2 id="live">Current Release</h2>
               <h3><span class=
               "news-title">Version 1.51.0</span></h3>
@@ -24,76 +21,3 @@
 <li>Download</li>
 <li>Documentation</li>
 </ul>
-
-
-              <h2><a name="history" id="history"></a>Old Boost Releases</h2>
-
-              <p>Old versions of boost can be found on the <a href=
-              "/users/history/">version history</a> page or from <a class=
-              "external" href=
-              "http://sourceforge.net/projects/boost/files/">the
-              sourceforge download page</a>.</p>
-
-              <h2><a name="repository" id="repository"></a>Subversion
-              Repository</h2>
-
-              <p>Boost uses <a class="external" href=
-              "http://subversion.tigris.org/">Subversion</a> to manage all of
-              the data associated with Boost's development, including the
-              source code to Boost, documentation for Boost libraries, and
-              the Boost web site.</p>
-
-              <h3>Accessing the Boost Subversion Repository</h3>
-
-              <p>The Subversion repository can be accessed in several
-              ways:</p>
-
-              <ul>
-                <li>Anonymous, read-only access to the Boost Subversion
-                repository is available at <a href=
-                "http://svn.boost.org/svn/boost">http://svn.boost.org/svn/boost>.
-                To access the current Boost development code, for instance,
-                one would check out from <a href=
-                "http://svn.boost.org/svn/boost/trunk">http://svn.boost.org/svn/boost/trunk>.
-                For example, using the command-line <tt>svn</tt>, one might
-                use:
-                  <pre>
-svn co <a href=
-"http://svn.boost.org/svn/boost/trunk">http://svn.boost.org/svn/boost/trunk> boost-trunk
-</pre>
-                </li>
-
-                <li>On Windows, <a href=
-                "http://tortoisesvn.tigris.org/">TortoiseSVN</a> provides an
-                easy-to-use, graphical interface to Subversion.</li>
-              </ul>
-
-              <h3>Organization of the Boost Subversion Repository</h3>
-
-              <p>The Boost Subversion repository is organized into several
-              top-level directories, reflecting various stages of Boost
-              library development and subtasks within the Boost community. We
-              have the following top-level directories:</p>
-
-              <ul>
-                <li><tt>trunk</tt>: Contains the latest "development" version
-                of Boost.</li>
-
-                <li><tt>sandbox</tt>: Contains libraries and tools that are
-                under active development and have not yet been reviewed or
-                accepted into Boost. See <a href=
-                "http://svn.boost.org/trac/boost/wiki/BoostSandbox">BoostSandbox</a>
-                for information about organization of the sandbox.</li>
-
-                <li><tt>website</tt>: Contains the upcoming Boost web site,
-                which is not yet live.</li>
-
-                <li><tt>branches</tt>: Contains various branches of Boost
-                libraries, typically for release branches and for non-trivial
-                changes to Boost libraries that need to be made separately
-                from the trunk.</li>
-
-                <li><tt>tags</tt>: Contains "tags" that mark certain points
-                in the source tree, such as particular Boost releases.</li>
-              </ul>
-            </div>
Modified: website/public_html/live/generated/history-items.html
==============================================================================
--- website/public_html/live/generated/history-items.html	(original)
+++ website/public_html/live/generated/history-items.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -1,5 +1,4 @@
-            <div class="section-body">
-              
+
               <h2 class="news-title">
               <a name="iversion_1_51_0" id="iversion_1_51_0"></a>Version 1.51.0</h2>
 
@@ -10,7 +9,8 @@
       New Libraries: Context. Updated Libraries: Algorithm, Asio, Config, Chrono,
       Geometry, Graph, Hash, Lexical Cast, Math, MSM, Proto, Ratio, Regex, Thread,
       Unordered, Wave, xpressive
-</span></span>              </div>
+</span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -30,7 +30,8 @@
       Filesystem, Foreach, Graph, Geometry, Hash, Iostreams, Iterator, MultiArray,
       Lexical cast, Locale, MSM, Program Options, PropertyMap, Proto, Ratio, ScopeExit,
       Thread, Unordered, Wave, xpressive
-</span></span>              </div>
+</span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -48,7 +49,8 @@
       New Library: Heap. Updated Libraries: Asio, Chrono, Container, Filesystem,
       Foreach, Geometry, Graph, Icl, Interprocess, Intrusive, Lexical Cast, Locale,
       Move, Property Tree, Proto, Spirit, Thread, Unordered, Uuid, xpressive.
-</span></span>              </div>
+</span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -66,7 +68,8 @@
       New Libraries: Container, Locale, Move. Updated Libraries: Asio, Chrono, Config,
       Fusion, Geometry, Graph, Interprocess, Intrusive, Lexical cast, Math, MSM,
       Numeric Conversion, Proto, Regex, Spirit, TypeTraits, Unordered, Wave
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -85,7 +88,8 @@
       Asio, Config, DateTime, Dynamic Bitset, Foreach, Function, Function Types,
       Graph, Iostreams, Iterator, Lexical Cast, Logic, Math, Meta State Machine,
       MultiIndex, Proto, Random, Range, Spirit, Tokenizer, Utility, Uuid, Wave
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -102,7 +106,8 @@
                 <span class="brief"><span class="purpose">
       Bug fixes: Asio, Fusion, Graph, Icl, Math, Polygon, Proto, Property Tree, Signals2,
       TR1, Unordered.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -121,7 +126,8 @@
       Fusion, Hash, Iostreams, Iterator, Math, Meta State Machine, Optional, Pool,
       Program Options, Proto, Signals, Spirit, Tokenizer, Unordered, Wave. Updated
       Tools: Boostbook, Inspect, Quickbook.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -138,7 +144,8 @@
       Updated Libraries: Asio, Config, Flyweight, Foreach, Fusion, Graph, Interprocess,
       Math, Meta State Machine, MultiArray, Proto, Spirit, TypeTraits, uBLAS, Unordered,
       Wave, Xpressive. Updated tools: Boostbook, Quickbook
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -157,7 +164,8 @@
       Asio, Config, Filesystem, Foreach, Fusion, Hash, Iostreams, Math, MPL, Multi-index
       Containers, Proto, Regex, Spirit, Thread, TR1, Type Traits, uBLAS, Utility,
       Uuid, Wave, Xpressive. Updates for Quickbook and Boostbook.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -176,7 +184,8 @@
       Updated Libraries: Accumulators, Array, Asio, Fusion, Iostreams, Multi-index
       Containers, Proto, Random, Spirit, Thread, Unordered, Uuid, Wave, Xpressive.
       Also, updates to the build system and quickbook.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -194,7 +203,8 @@
       New Libraries: Uuid. Updated Libraries: Asio, Circular Buffer, Fusion, Graph,
       Integer, Iostreams, Program.Options, PropertyMap, Proto, Regex, Spirit, Unordered,
       Xpressive.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -214,7 +224,8 @@
       Unordered, Utility, Wave, Xpressive. Updates to boost build and quickbook.
       The CMake build system for Boost, still under development here,
       has been removed from the main release to avoid confusion.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -232,7 +243,8 @@
       Build System improvements. Updated Libraries: Accumulators, Asio, Circular
       Buffer, Foreach, Function, Fusion, Graph, Hash, Interprocess, Intrusive, MPL,
       Program.Options, Property Map, Proto, Random, Serialization, Unordered, Xpressive.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -250,7 +262,8 @@
       New Libraries: Signals2. Updated Libraries: Asio, Flyweight, Foreach, Hash,
       Interprocess, Intrusive, Program.Options, Proto, PtrContainer, Range, Unordered,
       Xpressive. Updated Tools: Boostbook, Quickbook.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -270,7 +283,8 @@
       Intrusive, Lexical Cast, Math, Multi-index Containers, Proto, Regex, Thread,
       TR1, Type Traits, Unordered, Xpressive. Other Changes: Experimental CMake build
       system.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -287,7 +301,8 @@
                 <span class="brief"><span class="purpose">
       New Library: Proto. Updated Libraries: Asio, Circular Buffer, Dynamic Bitset,
       Exception, Hash, Interprocess, Intrusive, Math, Type Traits, Unordered
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -305,7 +320,8 @@
       New Libraries: Accumulators, Exception, Units, Unordered. Updated Libraries:
       Asio, Assign, Circular Buffer, Foreach, Function, Hash, Interprocess, Intrusive,
       Math, Multi-index Containers, MPI, PtrContainer, Spirit, Thread, Wave, Xpressive.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -324,7 +340,8 @@
       Intrusive, Math/Special Functions, Math/Statistical Distributions, MPI, System.
       Updated Libraries: Graph, Hash, Iostreams, Multi Array, Multi-index Containers,
       Serialization, Thread, Wave, Xpressive.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -340,7 +357,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Bugfix Release.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -359,7 +377,8 @@
       Assign, Date_time, Filesystem, Function, Hash, Graph, MultiArray, Multi-Index,
       Optional, Parameter, Pointer Container, Python, Signals, Smart Pointer, String
       Algorithm, Wave
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -376,7 +395,8 @@
                 <span class="brief"><span class="purpose">
       Updated Libraries: Any, Config, Python, Smart Pointer, Regex, Iostreams, Functional/Hash,
       Multi-index Containers, Graph, Signals, Thread, and Wave.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -394,7 +414,8 @@
       New Libraries: Iostream, Hash, Parameter, Pointer Container, Wave. Updated
       Libraries: Any, Assignment, Bind, Date-Time, Graph, Multi-Index, Program Options,
       Property Map, Python, Random Number, Range, Regex, Serialization, Signals.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -411,7 +432,8 @@
       New Libraries: Assignment, Minmax, Multi-Index, Numeric Conversion, Program
       Options, Range, Serialization, String, Tribool. Updated Libraries: Graph, MPL,
       Python, Signals, Utility, Test. Removed Libraries: Compose.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -429,7 +451,8 @@
       New Libraries: enable_if, Variant. Updated Libraries: Date Time, Filesystem,
       Iterator, MultiArray, Python, Random Number, Regex, Spirit, Test. Deprecated
       Libraries: Compose.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -445,7 +468,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Bugfix release
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -461,7 +485,8 @@
                 <span class="brief"><span class="purpose">
       Withdrawn bug fix release, fixes for Lambda, Spirit, MPL, Function, Config,
       Format, Regex, Smart Pointers, Python
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -476,7 +501,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Filesystem, Optional, Interval, MPL, Spirit Updated Libraries:
       Smart Pointers, Utility, Date-Time, Function, Operators, Test
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -492,7 +518,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Date-Time, Dynamic Bitset, Format. Updated Libraries: Function,
       Multi-Array, Preprocessor, Python, Signals, uBLASH.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -508,7 +535,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Lambda, I/O State Saver. Updated Libraries: Configuration, Random
       Number, Smart Pointers, Function Utility.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -524,7 +552,8 @@
                 <span class="brief"><span class="purpose">
       Updated Libraries: Python, Integer, Function, Quaternions, Octonions, Smart
       Pointers, Preprocessor, Threads.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -540,7 +569,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Common Factor, Preprocessor. Updated Libraries: Iterator Adaptor,
       Random Number, Operators.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -555,7 +585,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Graph, Thread, Function.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -571,7 +602,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Thread, Bind. Updated Libraries: Utility, Array, Config, Random
       Number, Math, Tokenizer.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -586,7 +618,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       New Library: Tuple.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -602,7 +635,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Any, Function, Tokenizer, Special functions, Octonions, Quaternions.
       Updated Library: Smart Pointer.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -617,7 +651,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       New Libary: CRC. Updated Libraries: Graph, Integer, Regex, Smart Pointer, Utility.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -632,7 +667,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       New Libraries: Compatibility. Updated Libraries: Random Number, Integer, Graph.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -647,7 +683,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Graph, Python, Regex.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -663,7 +700,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Iterator Adaptor, Pool, Test. Updated Libraries: Graph, Python,
       Regular Expression, Type Traits.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -678,7 +716,8 @@
                 <span class="brief"><span class="purpose">
       Updated Libraries: Array traits, Graph, Integer, Random Number, Rational Number,
       Regular Expression, Smart Pointer, Timer.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -693,7 +732,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Compressed Pair, Graph Library, Regular Expression.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -707,7 +747,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       New Library: Conversion. Updated Libraries: Array, Graph, Regular Expression.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -722,7 +763,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Concept Check, Python, Static Assert, Property Map Concepts.
       Updated Libraries: Graph, Regular Expression.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -736,7 +778,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Graph, Regular Expression, Cast.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -751,7 +794,8 @@
                 <span class="brief"><span class="purpose">
       Updated Libraries: Case, Graph, Regular Expression, Configuration. Utility
       library split into separate libraries.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -765,7 +809,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Graph, Random, Regular Expression, Configuration.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -780,7 +825,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Graph, Regular Expression. Updated Libraries: Array, Functional,
       Utility, Integer.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -795,7 +841,8 @@
                 <span class="brief"><span class="purpose">
       Added Library: Array. Updated Libraries: Array Traits, Random Number, Smart
       Pointer.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -809,7 +856,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Integer, Random Number, Cast, Call Traits, Operators.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -824,7 +872,8 @@
                 <span class="brief"><span class="purpose">
       New Libraries: Functional, iterator header, Updated Libraries: Random Number,
       Rational, Cast, Smart Pointer, Config.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -838,7 +887,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Cast, Operators, Config.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -852,7 +902,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Added Library: Random Number. Updated Libraries: Utility, Config, Cast.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -866,7 +917,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Config, Type Traits.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -880,7 +932,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Documentation updates.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -895,7 +948,8 @@
                 <span class="brief"><span class="purpose">
       Updated Libraries: Rational, Smart Pointer, Call Traits, Compressed Pair, Type
       Traits.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -909,7 +963,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Integer. Experimental libraries moved to vault.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -923,7 +978,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Added Libraries: Utility, Type Traits, Call Traits, Compressed Pair.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -937,7 +993,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Library: Integer.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -951,7 +1008,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Smart Pointer.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -965,7 +1023,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Minor fix for cast.hpp.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -980,7 +1039,8 @@
                 <span class="brief"><span class="purpose">
       New Library: Rational Number. Updated Libraries: Case, Config, Smart Pointer,
       Utility.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -994,7 +1054,8 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Updated Libraries: Smart Pointer, Cast.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -1009,7 +1070,8 @@
                 <span class="brief"><span class="purpose">
       Updated Libraries: Compse, Operators, Cast, Config, Smart Pointer First release
       with a version number.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
@@ -1023,9 +1085,9 @@
               <div class="news-description">
                 <span class="brief"><span class="purpose">
       Early releases of boost without version numbers.
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
 </ul>
-            </div>
Modified: website/public_html/live/generated/home-items.html
==============================================================================
--- website/public_html/live/generated/home-items.html	(original)
+++ website/public_html/live/generated/home-items.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -1,22 +1,19 @@
-
-                <div class="directory-item" id="important-downloads">
-                  <h2>Downloads</h2>
-                  <div id="downloads">
-
+<div class="directory-item" id="important-downloads">
+<h2>Downloads</h2>
+<div id="downloads">
 <h3>Current Release</h3>
 <ul>
-<li><div class="news-title">Version 1.51.0</div><div class="news-date">Release Notes | Documentation</div><div class="news-date">August 20th, 2012 23:00 GMT</div></li>
+<li><div class="news-title">Version 1.51.0</div><div class="news-date">Details | Download | Documentation</div><div class="news-date">August 20th, 2012 23:00 GMT</div></li>
 </ul>
-                  </div>
-                  <p>More Downloads...
-                  (RSS)</p>
-                </div>
+</div>
+<p>More Downloads... (RSS)</p>
+</div>
+
+<div class="directory-item" id="important-news">
+<h2>News</h2>
 
-                <div class="directory-item" id="important-news">
-                  <h2>News</h2>
+<ul id="news">
 
-                  <ul id="news">
-                    
                     <li><span class=
                     "news-title">Version 1.51.0</span>
                     <span class=
@@ -48,10 +45,9 @@
       Move, Property Tree, Proto, Spirit, Thread, Unordered, Uuid, xpressive.
 </span></span></span>
                     <span class=
-                    "news-date">February 24th, 2012 21:20 GMT</span></li>                  </ul>
+                    "news-date">February 24th, 2012 21:20 GMT</span></li></ul>
 
-                  <p>More News... (<a href=
-                  "feed/news.rss">RSS</a>)</p>
-                </div>
+<p>More News... (<a href=feed/news.rss">RSS</a>)</p>
+</div>
 
-                <div class="clear"></div>
+<div class="clear"></div>
Modified: website/public_html/live/generated/news-items.html
==============================================================================
--- website/public_html/live/generated/news-items.html	(original)
+++ website/public_html/live/generated/news-items.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -1,16 +1,20 @@
-            <div class="section-body">
-              <ul class="toc">
+<ul class="toc">
                 
                 <li><span class=
                 "news-title">Version 1.51.0</span></li>
+
                 <li><span class=
                 "news-title">Version 1.50.0</span></li>
+
                 <li><span class=
                 "news-title">Version 1.49.0</span></li>
+
                 <li><span class=
                 "news-title">Version 1.48.0</span></li>
+
                 <li><span class=
-                "news-title">Version 1.47.0</span></li>              </ul>
+                "news-title">Version 1.47.0</span></li>
+              </ul>
               <h2 class="news-title">
               <a name="iversion_1_51_0" id="iversion_1_51_0"></a>Version 1.51.0</h2>
 
@@ -21,14 +25,14 @@
       New Libraries: Context. Updated Libraries: Algorithm, Asio, Config, Chrono,
       Geometry, Graph, Hash, Lexical Cast, Math, MSM, Proto, Ratio, Regex, Thread,
       Unordered, Wave, xpressive
-</span></span>              </div>
+</span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
 <li>Download</li>
 <li>Documentation</li>
 </ul>
-
               <h2 class="news-title">
               <a name="iversion_1_50_0" id="iversion_1_50_0"></a>Version 1.50.0</h2>
 
@@ -41,14 +45,14 @@
       Filesystem, Foreach, Graph, Geometry, Hash, Iostreams, Iterator, MultiArray,
       Lexical cast, Locale, MSM, Program Options, PropertyMap, Proto, Ratio, ScopeExit,
       Thread, Unordered, Wave, xpressive
-</span></span>              </div>
+</span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
 <li>Download</li>
 <li>Documentation</li>
 </ul>
-
               <h2 class="news-title">
               <a name="iversion_1_49_0" id="iversion_1_49_0"></a>Version 1.49.0</h2>
 
@@ -59,14 +63,14 @@
       New Library: Heap. Updated Libraries: Asio, Chrono, Container, Filesystem,
       Foreach, Geometry, Graph, Icl, Interprocess, Intrusive, Lexical Cast, Locale,
       Move, Property Tree, Proto, Spirit, Thread, Unordered, Uuid, xpressive.
-</span></span>              </div>
+</span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
 <li>Download</li>
 <li>Documentation</li>
 </ul>
-
               <h2 class="news-title">
               <a name="iversion_1_48_0" id="iversion_1_48_0"></a>Version 1.48.0</h2>
 
@@ -77,14 +81,14 @@
       New Libraries: Container, Locale, Move. Updated Libraries: Asio, Chrono, Config,
       Fusion, Geometry, Graph, Interprocess, Intrusive, Lexical cast, Math, MSM,
       Numeric Conversion, Proto, Regex, Spirit, TypeTraits, Unordered, Wave
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
 <li>Download</li>
 <li>Documentation</li>
 </ul>
-
               <h2 class="news-title">
               <a name="iversion_1_47_0" id="iversion_1_47_0"></a>Version 1.47.0</h2>
 
@@ -96,11 +100,11 @@
       Asio, Config, DateTime, Dynamic Bitset, Foreach, Function, Function Types,
       Graph, Iostreams, Iterator, Lexical Cast, Logic, Math, Meta State Machine,
       MultiIndex, Proto, Random, Range, Spirit, Tokenizer, Utility, Uuid, Wave
-    </span></span>              </div>
+    </span></span>
+              </div>
 
 <ul class="menu">
 <li>Details</li>
 <li>Download</li>
 <li>Documentation</li>
-</ul>
-            </div>
+</ul>
\ No newline at end of file
Modified: website/public_html/live/site-tools/boost_site/boostbook_parser.py
==============================================================================
--- website/public_html/live/site-tools/boost_site/boostbook_parser.py	(original)
+++ website/public_html/live/site-tools/boost_site/boostbook_parser.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -19,7 +19,7 @@
 
         article_node = article.documentElement
         if article_node.nodeName != 'article':
-            print "Boostbook file not article:", filename
+            print("Boostbook file not article:", filename)
             return
 
         id = ''
@@ -207,7 +207,7 @@
     
     def new_node( self, tag, *child, **kwargs ):
         result = self.document.createElement(tag)
-        for k in kwargs.keys():
+        for k in list(kwargs.keys()):
             if kwargs[k] != '':
                 if k == 'id':
                     result.setAttribute('id',kwargs[k])
Modified: website/public_html/live/site-tools/boost_site/pages.py
==============================================================================
--- website/public_html/live/site-tools/boost_site/pages.py	(original)
+++ website/public_html/live/site-tools/boost_site/pages.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -4,7 +4,7 @@
 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 import boost_site.state, boost_site.util
-import os, hashlib, xml.dom.minidom, re, fnmatch, subprocess, tempfile, time
+import os, sys, hashlib, xml.dom.minidom, re, fnmatch, subprocess, tempfile, time
 
 class Pages:
     """ Tracks which items in an rss feed have been updated.
@@ -36,10 +36,13 @@
         boost_site.state.save(save_hashes, self.hash_file)
 
     def add_qbk_file(self, qbk_file, location, page_data):
-        file = open(qbk_file)
-        try:
+        if sys.version_info < (3,0):
+            file = open(qbk_file, 'r')
             qbk_hash = hashlib.sha256(file.read()).hexdigest()
-        finally:
+            file.close()
+        else:
+            file = open(qbk_file, 'rb')
+            qbk_hash = hashlib.sha256(file.read().replace(bytes([13,10]), bytes([10]))).hexdigest()
             file.close()
 
         record = None
@@ -83,8 +86,8 @@
                         'last_modified': self.pages[self.rss_hashes[hashed]].last_modified
                     }
                 else:
-                    print "Unable to find quickbook file for rss item:"
-                    print hashed
+                    print("Unable to find quickbook file for rss item:")
+                    print(hashed)
 
         return rss_items
 
@@ -95,7 +98,7 @@
         try:
             subprocess.check_call(['quickbook', '--version'])
         except:
-            print "Problem running quickbook, will not convert quickbook articles."
+            print("Problem running quickbook, will not convert quickbook articles.")
             return
         
         bb_parser = boost_site.boostbook_parser.BoostBookParser()
@@ -107,15 +110,46 @@
                 os.close(xml_file[0])
                 xml_filename = xml_file[1]
                 try:
-                    print "Converting " + page + ":"
+                    print("Converting " + page + ":")
                     subprocess.check_call(['quickbook', '--output-file', xml_filename, '-I', 'feed', page])
                     page_data.load(bb_parser.parse(xml_filename), refresh)
                 finally:
                     os.unlink(xml_filename)
-    
-                boost_site.templite.write_template(page_data.location,
+
+                template_vars = {
+                    'history_style' : '',
+                    'full_title_xml' : page_data.full_title_xml,
+                    'title_xml' : page_data.title_xml,
+                    'note_xml' : '',
+                    'web_date' : page_data.web_date(),
+                    'documentation_para' : '',
+                    'download_table' : page_data.download_table(),
+                    'description_xml' : page_data.description_xml
+                }
+
+                if page_data.type == 'release' and 'released' not in page_data.flags:
+                    template_vars['note_xml'] = '<div class="section-note"><p>Note: This version is at an early stage in its release cycle. The information listed below is incomplete and some of the documentation links may not work yet.</p></div>'
+
+                if page_data.documentation:
+                    template_vars['documentation_para'] = '<p>Documentation'
+
+                if(page_data.location.startswith('users/history/')):
+                    template_vars['history_style'] = """
+  <style type="text/css">
+/*<![CDATA[*/
+  #content .news-description ul {
+    list-style: none;
+  }
+  #content .news-description ul ul {
+    list-style: circle;
+  }
+  /*]]>*/
+  </style>
+"""
+
+                boost_site.util.write_template(page_data.location,
                     'site-tools/templates/entry-template.html',
-                    { 'page': page_data })
+                    template_vars)
 
     def match_pages(self, patterns, count = None, sort = True):
         """
@@ -127,7 +161,7 @@
         for pattern in patterns:
             pattern_parts = pattern.split('|')
             matches = [x for x in
-                fnmatch.filter(self.pages.keys(), pattern_parts[0])
+                fnmatch.filter(list(self.pages.keys()), pattern_parts[0])
                 if self.pages[x].is_published(pattern_parts[1:])]
             filtered = filtered | set(matches)
 
@@ -178,7 +212,7 @@
                 self.release_status = 'dev'
             status_parts = self.release_status.split(' ', 2)
             if status_parts[0] not in ['released', 'beta', 'dev']:
-                print "Error: Unknown release status: " + self.release_status
+                print("Error: Unknown release status: " + self.release_status)
                 self.release_status = None
             if self.release_status:
                 self.flags.add(status_parts[0])
@@ -330,7 +364,7 @@
 
 def number_suffix(x):
     x = x % 100
-    if x / 10 == 1:
+    if x // 10 == 1:
         return "th"
     else:
         return ["th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th"][x % 10]
Modified: website/public_html/live/site-tools/boost_site/settings.py
==============================================================================
--- website/public_html/live/site-tools/boost_site/settings.py	(original)
+++ website/public_html/live/site-tools/boost_site/settings.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -21,24 +21,21 @@
     'pages': {
         'users/history/': {
             'src_files' : ['feed/history/*.qbk'],
-            'template'  : 'site-tools/templates/entry-template.html',
             'type'      : 'release'
         },
         'users/news/': {
             'src_files' : ['feed/news/*.qbk'],
-            'template'  : 'site-tools/templates/entry-template.html'
         },
         'users/download/': {
             'src_files' : ['feed/downloads/*.qbk'],
-            'template'  : 'site-tools/templates/entry-template.html',
             'type'      : 'release'
         }
     },
     'index-pages' : {
-        'generated/download-items.html' : 'site-tools/templates/download-template.html',
-        'generated/history-items.html' : 'site-tools/templates/history-template.html',
-        'generated/news-items.html' : 'site-tools/templates/news-template.html',
-        'generated/home-items.html' : 'site-tools/templates/index-src.html'
+        'generated/download-items.html' : 'site-tools/templates/download-template.py',
+        'generated/history-items.html' : 'site-tools/templates/history-template.py',
+        'generated/news-items.html' : 'site-tools/templates/news-template.py',
+        'generated/home-items.html' : 'site-tools/templates/index-template.py'
     },
     # See boost_site.pages for matches pattern syntax.
     #
Modified: website/public_html/live/site-tools/boost_site/site_tools.py
==============================================================================
--- website/public_html/live/site-tools/boost_site/site_tools.py	(original)
+++ website/public_html/live/site-tools/boost_site/site_tools.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -4,7 +4,7 @@
 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 import os, sys, subprocess, glob, re, time, xml.dom.minidom, codecs
-import boost_site.templite, boost_site.pages, boost_site.boostbook_parser, boost_site.util
+import boost_site.pages, boost_site.boostbook_parser, boost_site.util
 from boost_site.settings import settings
 
 ################################################################################
@@ -54,7 +54,7 @@
     }
 
     for index_page in settings['index-pages']:
-        boost_site.templite.write_template(
+        boost_site.util.write_py_template(
             index_page,
             settings['index-pages'][index_page],
             index_page_variables)
@@ -86,9 +86,9 @@
                         rss_feed.importNode(
                             old_rss_items[qbk_page.qbk_file]['item'], True))
                 else:
-                    print "Missing entry for %s" % qbk_page.qbk_file
+                    print("Missing entry for %s" % qbk_page.qbk_file)
                     
-            output_file = open(feed_file, 'w')
+            output_file = open(feed_file, 'wb')
             try:
                 output_file.write(rss_feed.toxml('utf-8'))
             finally:
@@ -121,8 +121,8 @@
   </channel>
 </rss>
 ''' % {
-    'title' : details['title'].encode('utf-8'),
-    'link' : "http://www.boost.org/" + details['link'],
+    'title' : encode_for_rss(details['title']),
+    'link' : encode_for_rss("http://www.boost.org/" + details['link']),
     'description' : '',
     'language' : 'en-us',
     'copyright' : 'Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)'
@@ -138,15 +138,15 @@
     item = rss_feed.createElement('item')
 
     node = xml.dom.minidom.parseString('<title>%s</title>'
-        % page.title_xml.encode('utf-8'))
+        % encode_for_rss(page.title_xml))
     item.appendChild(rss_feed.importNode(node.documentElement, True))
 
     node = xml.dom.minidom.parseString('<link>%s</link>'
-        % page_link.encode('utf-8'))
+        % encode_for_rss(page_link))
     item.appendChild(rss_feed.importNode(node.documentElement, True))
 
     node = xml.dom.minidom.parseString('<guid>%s</guid>'
-        % page_link.encode('utf-8'))
+        % encode_for_rss(page_link))
     item.appendChild(rss_feed.importNode(node.documentElement, True))
 
     # TODO: Convert date format?
@@ -157,7 +157,7 @@
     node = rss_feed.createElement('description')
     # Placing the description in a root element to make it well formed xml.
     description = xml.dom.minidom.parseString(
-        '<x>%s</x>' % page.description_xml.encode('utf-8'))
+        '<x>%s</x>' % encode_for_rss(page.description_xml))
     boost_site.util.base_links(description, page_link)
     node.appendChild(rss_feed.createTextNode(
         boost_site.util.fragment_to_string(description.firstChild)))
@@ -168,5 +168,11 @@
         'quickbook': qbk_file,
         'last_modified': page.last_modified
     })
+
+def encode_for_rss(x):
+    if sys.version_info < (3, 0):
+        return x.encode('utf-8')
+    else:
+        return x
  
 ################################################################################
Modified: website/public_html/live/site-tools/boost_site/state.py
==============================================================================
--- website/public_html/live/site-tools/boost_site/state.py	(original)
+++ website/public_html/live/site-tools/boost_site/state.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -3,9 +3,9 @@
 # Distributed under the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-import os
+import os, sys
 
-class StateParseError:
+class StateParseError(BaseException):
     None
 
 def load(file_path):
@@ -64,9 +64,15 @@
                         if(not key): raise StateParseError()
                         if(type == 'None'):
                             type = 'String'
-                            value = file.readline().decode('utf-8')
+                            if sys.version_info < (3, 0):
+                                value = file.readline().decode('utf-8')
+                            else:
+                                value = file.readline()
                         elif(type == 'String'):
-                            value = value + file.readline().decode('utf-8')
+                            if sys.version_info < (3, 0):
+                                value = value + file.readline().decode('utf-8')
+                            else:
+                                value = value + file.readline()
                         else:
                             raise StateParseError()
                     else:
@@ -78,36 +84,41 @@
     return state
 
 def save(state, file_path):
-    file = open(file_path, "w")
+    file = open(file_path, "wb")
     try:
         for record_key in sorted(state.keys()):
             record = state[record_key]
 
-            file.write("(")
-            file.write(record_key)
-            file.write("\n")
+            write(file, "(")
+            write(file, record_key)
+            write(file, "\n")
 
             for key in sorted(record.keys()):            
-                file.write("-")
-                file.write(key)
-                file.write("\n")
+                write(file, "-")
+                write(file, key)
+                write(file, "\n")
 
                 if record[key] is not None:
-                    if isinstance(record[key], basestring):
-                        file.write('"')
-                        file.write(record[key].replace("\n", "\n\"").encode('utf-8'))
-                        file.write("\n")
+                    if isinstance(record[key], str) or \
+                            (sys.version_info < (3,0) and isinstance(record[key], unicode)):
+                        write(file, '"')
+                        write(file, record[key].replace("\n", "\n\""))
+                        write(file, "\n")
                     elif isinstance(record[key], bool):
-                        file.write('!')
-                        file.write(str(record[key]))
-                        file.write("\n")
+                        write(file, '!')
+                        write(file, str(record[key]))
+                        write(file, "\n")
                     elif isinstance(record[key], (int, float)):
-                        file.write('.')
-                        file.write(str(record[key]))
-                        file.write("\n")
+                        write(file, '.')
+                        write(file, str(record[key]))
+                        write(file, "\n")
                     else:
+                        print(type(record[key]))
                         assert False
 
-            file.write(")\n")
+            write(file, ")\n")
     finally:
         file.close()
+
+def write(file, str):
+    file.write(str.encode('utf-8'))
\ No newline at end of file
Deleted: website/public_html/live/site-tools/boost_site/templite.py
==============================================================================
--- website/public_html/live/site-tools/boost_site/templite.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
+++ (empty file)
@@ -1,87 +0,0 @@
-# Templite
-#
-# Taken from:
-## {{{ http://code.activestate.com/recipes/496702/ (r3)
-#
-# Modified to use unicode, and added convenience method.
-#
-# Licensed under the PSF License
-
-import re
-
-# TODO: Integrate with main class?
-def write_template(location, template, params):
-    template_file = open(template, 'r')
-    try:
-        template_format = template_file.read().decode('utf-8')
-    finally:
-        template_file.close()
-
-    t = Templite(template_format)
-    output = t(params)
-    output_file = open(location, 'w')
-    try:
-        output_file.write(output.encode('utf-8'))
-    finally:
-        output_file.close()
-
-class Templite(object):
-    delimiter = re.compile(r"\$\{(.*?)\}\$", re.DOTALL)
-    
-    def __init__(self, template):
-        self.tokens = self.compile(template)
-    
-    @classmethod
-    def from_file(cls, file):
-        """
-        loads a template from a file. `file` can be either a string, specifying
-        a filename, or a file-like object, supporting read() directly
-        """
-        if isinstance(file, basestring):
-            file = open(file)
-        return cls(file.read())
-    
-    @classmethod
-    def compile(cls, template):
-        tokens = []
-        for i, part in enumerate(cls.delimiter.split(template)):
-            if i % 2 == 0:
-                if part:
-                    tokens.append((False, part.replace("$\\{", "${")))
-            else:
-                if not part.strip():
-                    continue
-                lines = part.replace("}\\$", "}$").splitlines()
-                margin = min(len(l) - len(l.lstrip()) for l in lines if l.strip())
-                realigned = "\n".join(l[margin:] for l in lines)
-                code = compile(realigned, "<templite %r>" % (realigned[:20],), "exec")
-                tokens.append((True, code))
-        return tokens
-    
-    def render(__self, __namespace = None, **kw):
-        """
-        renders the template according to the given namespace. 
-        __namespace - a dictionary serving as a namespace for evaluation
-        **kw - keyword arguments which are added to the namespace
-        """
-        namespace = {}
-        if __namespace: namespace.update(__namespace)
-        if kw: namespace.update(kw)
-        
-        def emitter(*args):
-            for a in args: output.append(unicode(a))
-        def fmt_emitter(fmt, *args):
-            output.append(fmt % args)
-        namespace["emit"] = emitter
-        namespace["emitf"] = fmt_emitter
-        
-        output = []
-        for is_code, value in __self.tokens:
-            if is_code:
-                eval(value, namespace)
-            else:
-                output.append(value)
-        return "".join(output)
-    
-    # shorthand
-    __call__ = render
Modified: website/public_html/live/site-tools/boost_site/upgrade.py
==============================================================================
--- website/public_html/live/site-tools/boost_site/upgrade.py	(original)
+++ website/public_html/live/site-tools/boost_site/upgrade.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -66,10 +66,10 @@
     version = Version()
 
     if(version.version < len(versions)):
-        print "Upgrading to new version."
+        print("Upgrading to new version.")
 
         for v in range(version.version, len(versions)):
-            print "Upgrade", v + 1
+            print("Upgrade " + (v + 1))
             versions[v]()
             version.version = v + 1
             version.save()
Modified: website/public_html/live/site-tools/boost_site/util.py
==============================================================================
--- website/public_html/live/site-tools/boost_site/util.py	(original)
+++ website/public_html/live/site-tools/boost_site/util.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -3,7 +3,12 @@
 # Distributed under the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-import urlparse, re
+import sys, re, string
+
+try:
+    from urllib.parse import urljoin
+except ImportError:
+    from urlparse import urljoin
 
 def htmlencode(text):
     return text.replace('&', '&').replace('<', '<').replace('>', '&rt;')
@@ -16,11 +21,10 @@
     http://bugs.python.org/issue9883
     """
     x = ''.join(x.toxml('utf-8').decode('utf-8') for x in fragment.childNodes)
-    x = re.compile(r' +$', flags = re.M).sub('', x)
-    return x
+    return re.compile(r' +$', flags = re.M).sub('', x)
 
 def base_links(node, base_link):
-    transform_links(node, lambda x: urlparse.urljoin(base_link,x))
+    transform_links(node, lambda x: urljoin(base_link, x))
 
 def transform_links(node, func):
     transform_links_impl(node, 'a', 'href', func)
@@ -34,3 +38,34 @@
     elif node.nodeType == node.DOCUMENT_FRAGMENT_NODE:
         for x in node.childNodes:
             transform_links_impl(x, tag_name, attribute, func)
+
+def write_template(dst_path, template_path, data):
+    file = open(template_path)
+    if sys.version_info < (3, 0):
+        s = string.Template(file.read().decode('utf-8'))
+    else:
+        s = string.Template(file.read())
+    output = s.substitute(data)
+    output = re.compile(r' +$', flags = re.M).sub('', output)
+    out = open(dst_path, 'w')
+    if sys.version_info < (3, 0):
+        out.write(output.encode('utf-8'))
+    else:
+        out.write(output)
+
+def write_py_template(dst_path, template_path, data):
+    data['emit'] = Emitter()
+    exec(open(template_path).read(), {}, data)
+
+    out = open(dst_path, 'w')
+    if sys.version_info < (3, 0):
+        out.write(data['emit'].output.encode('utf-8'))
+    else:
+        out.write(data['emit'].output)
+
+class Emitter:
+    def __init__(self):
+        self.output = ''
+
+    def __call__(self, x):
+        self.output += x
Modified: website/public_html/live/site-tools/release.py
==============================================================================
--- website/public_html/live/site-tools/release.py	(original)
+++ website/public_html/live/site-tools/release.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -12,24 +12,24 @@
 import boost_site.site_tools
 
 if len(sys.argv) != 2:
-    print __doc__
+    print(__doc__)
     exit(1)
 
 # Because I'm an idiot, we need to get the real path to the quickbook file
 # before calling init.
 
 if not os.path.isfile(sys.argv[1]):
-    print "Unable to find release notes at:", sys.argv[1]
+    print("Unable to find release notes at: " + sys.argv[1])
     exit(1)
 
 release_notes = os.path.realpath(sys.argv[1])
 
 boost_site.site_tools.init()
 
-# Note: Not using os.path.relpath because I want to support Python 2.5
+# Note: Not using os.path.realpath because I want to support Python 2.5
 cwd = os.getcwd()
 if not release_notes.startswith(cwd):
-    print "Release notes aren't in current site:", sys.argv[1]
+    print("Release notes aren't in current site: " + sys.argv[1])
     exit(1)
 
 release_notes = release_notes[len(cwd):].lstrip('/')
@@ -39,7 +39,7 @@
 
 # Flag the released page
 if release_notes not in pages.pages:
-    print "Unable to find page:", release_notes
+    print("Unable to find page: " + release_notes)
     exit(1)
 pages.pages[release_notes].flags.add('released')
 pages.save()
Deleted: website/public_html/live/site-tools/templates/download-template.html
==============================================================================
--- website/public_html/live/site-tools/templates/download-template.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
+++ (empty file)
@@ -1,107 +0,0 @@
-${
-from boost_site.util import htmlencode
-}$            <div class="section-body">
-              <ul class="toc">
-${
-for x in downloads:
-    emit('<li>%s</li>\n' % (x['anchor'], x['label']))
-}$
-                <li>Old Boost Releases</li>
-
-                <li>Subversion Repository</li>
-              </ul>
-${
-for x in downloads:
-    emit('<h2 id="%s">%s</h2>' % (x['anchor'], x['label']))
-    for entry in x['entries']:
-        emit('\n')
-        emit('              <h3><span class=\n              "news-title">%s</span></h3>\n\n' % entry.full_title_xml)
-        emit('              <p class="news-date">%s</p>\n\n' % entry.web_date())
-        emit('              <p class="news-description">\n')
-        emit('              <span class="brief"><span class="purpose">%s</span></span></p>\n\n' % entry.purpose_xml)
-        emit('<ul class="menu">\n')
-        emit('<li>')
-        emit('Details' % htmlencode(entry.location))
-        emit('</li>\n')
-        if(entry.download_item):
-            emit('<li>')
-            emit('Download' % htmlencode(entry.download_item))
-            emit('</li>\n')
-        if(entry.documentation):
-            emit('<li>')
-            emit('Documentation' % htmlencode(entry.documentation))
-            emit('</li>\n')
-        emit('</ul>\n')
-}$
-
-              <h2><a name="history" id="history"></a>Old Boost Releases</h2>
-
-              <p>Old versions of boost can be found on the <a href=
-              "/users/history/">version history</a> page or from <a class=
-              "external" href=
-              "http://sourceforge.net/projects/boost/files/">the
-              sourceforge download page</a>.</p>
-
-              <h2><a name="repository" id="repository"></a>Subversion
-              Repository</h2>
-
-              <p>Boost uses <a class="external" href=
-              "http://subversion.tigris.org/">Subversion</a> to manage all of
-              the data associated with Boost's development, including the
-              source code to Boost, documentation for Boost libraries, and
-              the Boost web site.</p>
-
-              <h3>Accessing the Boost Subversion Repository</h3>
-
-              <p>The Subversion repository can be accessed in several
-              ways:</p>
-
-              <ul>
-                <li>Anonymous, read-only access to the Boost Subversion
-                repository is available at <a href=
-                "http://svn.boost.org/svn/boost">http://svn.boost.org/svn/boost>.
-                To access the current Boost development code, for instance,
-                one would check out from <a href=
-                "http://svn.boost.org/svn/boost/trunk">http://svn.boost.org/svn/boost/trunk>.
-                For example, using the command-line <tt>svn</tt>, one might
-                use:
-                  <pre>
-svn co <a href=
-"http://svn.boost.org/svn/boost/trunk">http://svn.boost.org/svn/boost/trunk> boost-trunk
-</pre>
-                </li>
-
-                <li>On Windows, <a href=
-                "http://tortoisesvn.tigris.org/">TortoiseSVN</a> provides an
-                easy-to-use, graphical interface to Subversion.</li>
-              </ul>
-
-              <h3>Organization of the Boost Subversion Repository</h3>
-
-              <p>The Boost Subversion repository is organized into several
-              top-level directories, reflecting various stages of Boost
-              library development and subtasks within the Boost community. We
-              have the following top-level directories:</p>
-
-              <ul>
-                <li><tt>trunk</tt>: Contains the latest "development" version
-                of Boost.</li>
-
-                <li><tt>sandbox</tt>: Contains libraries and tools that are
-                under active development and have not yet been reviewed or
-                accepted into Boost. See <a href=
-                "http://svn.boost.org/trac/boost/wiki/BoostSandbox">BoostSandbox</a>
-                for information about organization of the sandbox.</li>
-
-                <li><tt>website</tt>: Contains the upcoming Boost web site,
-                which is not yet live.</li>
-
-                <li><tt>branches</tt>: Contains various branches of Boost
-                libraries, typically for release branches and for non-trivial
-                changes to Boost libraries that need to be made separately
-                from the trunk.</li>
-
-                <li><tt>tags</tt>: Contains "tags" that mark certain points
-                in the source tree, such as particular Boost releases.</li>
-              </ul>
-            </div>
Modified: website/public_html/live/site-tools/templates/entry-template.html
==============================================================================
--- website/public_html/live/site-tools/templates/entry-template.html	(original)
+++ website/public_html/live/site-tools/templates/entry-template.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -1,34 +1,16 @@
-${
-from boost_site.util import htmlencode
-}$<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 <head>
-  <title>${ emit(page.full_title_xml) }$</title>
+  <title>${full_title_xml}</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <link rel="icon" href="/favicon.ico" type="image/ico" />
   <link rel="stylesheet" type="text/css" href="/style-v2/section-boost.css" />
-${
-if(page.location.startswith('users/history/')):
-    emit("""  <style type="text/css">
-/*<![CDATA[*/
-  #content .news-description ul {
-    list-style: none;
-  }
-  #content .news-description ul ul {
-    list-style: circle;
-  }
-  /*]]>*/
-  </style>
-""")
-}$  <!--[if IE 7]> <style type="text/css"> body { behavior: url(/style-v2/csshover3.htc); } </style> <![endif]-->
+${history_style}
+  <!--[if IE 7]> <style type="text/css"> body { behavior: url(/style-v2/csshover3.htc); } </style> <![endif]-->
 </head>
-
-${
-    # Obviously doesn't apply here.
-    emit("<!-- Don't edit this page! It's generated by site-tools/site-tools.py -->\n");
-}$
+<!-- Don't edit this page! It's generated by site-tools/site-tools.py -->
 <body>
   <div id="heading">
     <!--#include virtual="/common/heading.html" -->  </div>
@@ -39,24 +21,19 @@
         <div class="section" id="intro">
           <div class="section-0">
             <div class="section-title">
-              <h1>${ emit(page.title_xml) }$</h1>
+              <h1>${title_xml}</h1>
             </div>
-${
-if page.type == 'release' and 'released' not in page.flags:
-    emit('<div class="section-note"><p>Note: This version is at an early stage in its release cycle. The information listed below is incomplete and some of the documentation links may not work yet.</p></div>\n');
-}$
+            ${note_xml}
             <div class="section-body">
               <h2><span class=
-              "news-title">${ emit(page.full_title_xml) }$</span></h2>
+              "news-title">${full_title_xml}</span></h2>
 
-              <p><span class=
-              "news-date">${ emit(page.web_date()) }$</span></p>
-${
-if (page.documentation): emit('<p>Documentation')
-}$
-              ${ emit(page.download_table()) }$
+              <p><span class=news-date">${web_date}</span></p>
+              ${documentation_para}
+              ${download_table}
               <div class="news-description">
-                <div class="description">${ emit(page.description_xml) }$</div>              </div>
+                <div class="description">${description_xml}</div>
+              </div>
             </div>
           </div>
         </div>
Deleted: website/public_html/live/site-tools/templates/history-template.html
==============================================================================
--- website/public_html/live/site-tools/templates/history-template.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-${
-from boost_site.util import htmlencode
-
-title = 'Boost Version History'
-entries = pages.match_pages(['feed/history/*.qbk|released'])
-}$            <div class="section-body">
-              ${
-for entry in entries:
-    emit('\n')
-    emit('              <h2 class="news-title">\n              <a name="i%s" id="i%s"></a>%s</h2>\n\n' % (entry.id, entry.id, htmlencode(entry.location), entry.title_xml))
-    emit('              <p class="news-date">%s</p>\n\n' % (entry.web_date()))
-    emit('              <div class="news-description">\n')
-    emit('                <span class="brief"><span class="purpose">%s</span></span>' % (entry.purpose_xml))
-    emit('              </div>\n\n')
-    emit('<ul class="menu">\n')
-    emit('<li>')
-    emit('Details' % htmlencode(entry.location))
-    emit('</li>\n')
-    if(entry.download_item):
-        emit('<li>')
-        emit('Download' % htmlencode(entry.download_item))
-        emit('</li>\n')
-    if(entry.documentation):
-        emit('<li>')
-        emit('Documentation' % htmlencode(entry.documentation))
-        emit('</li>\n')
-    emit('</ul>\n')
-}$            </div>
Deleted: website/public_html/live/site-tools/templates/index-src.html
==============================================================================
--- website/public_html/live/site-tools/templates/index-src.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
+++ (empty file)
@@ -1,57 +0,0 @@
-${
-from boost_site.util import htmlencode
-
-# TODO: This is duplicated from other places, should only be set once?
-news = pages.match_pages(['feed/news/*.qbk', 'feed/history/*.qbk|released'], 3)
-}$
-                <div class="directory-item" id="important-downloads">
-                  <h2>Downloads</h2>
-                  <div id="downloads">
-
-${
-for x in downloads:
-    label = x['label']
-    entries = x['entries']
-    emit('<h3>%s</h3>\n' % label)
-    emit('<ul>\n')
-    for entry in entries:
-        emit('<li>')
-        emit('<div class="news-title">')
-        if entry.download_item:
-            emit('<a href="%s">' % htmlencode(entry.download_item))
-        emit(entry.full_title_xml)
-        if entry.download_item:
-            emit('</a>')
-        emit('</div>')
-        emit('<div class="news-date">')
-        emit('Release Notes' % (htmlencode(entry.location)))
-        if entry.documentation:
-            emit(' | ')
-            emit('Documentation' % (htmlencode(entry.documentation)))
-        emit('</div>')
-        emit('<div class="news-date">%s</div>' % (entry.web_date()))
-        emit('</li>\n')
-    emit('</ul>')
-}$
-                  </div>
-                  <p>More Downloads...
-                  (RSS)</p>
-                </div>
-
-                <div class="directory-item" id="important-news">
-                  <h2>News</h2>
-
-                  <ul id="news">
-                    ${
-for entry in news:
-    emit('\n')
-    emit('                    <li><span class=\n                    "news-title">%s</span>\n' % (htmlencode(entry.location), entry.full_title_xml))
-    emit('                    <span class=\n                    "news-description"><span class="brief"><span class="purpose">%s</span></span></span>\n' % entry.purpose_xml)
-    emit('                    <span class=\n                    "news-date">%s</span></li>' % (entry.web_date()))
-}$                  </ul>
-
-                  <p>More News... (<a href=
-                  "feed/news.rss">RSS</a>)</p>
-                </div>
-
-                <div class="clear"></div>
Copied: website/public_html/live/site-tools/templates/index-template.py (from r78698, /website/public_html/beta/site-tools/templates/index-template.py)
==============================================================================
--- /website/public_html/beta/site-tools/templates/index-template.py	(original)
+++ website/public_html/live/site-tools/templates/index-template.py	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -15,14 +15,14 @@
     for entry in entries:
         emit('<li>')
         emit('<div class="news-title">')
-        if entry.download_item:
-            emit('<a href="%s">' % htmlencode(entry.download_item))
-        emit(entry.full_title_xml)
-        if entry.download_item:
-            emit('</a>')
+        emit('%s' % (htmlencode(entry.location),
+            entry.full_title_xml))
         emit('</div>')
         emit('<div class="news-date">')
-        emit('Release Notes' % (htmlencode(entry.location)))
+        emit('Details' % (htmlencode(entry.location)))
+        if entry.download_item:
+            emit(' | ')
+            emit('Download' % (htmlencode(entry.download_item)))
         if entry.documentation:
             emit(' | ')
             emit('Documentation' % (htmlencode(entry.documentation)))
@@ -33,7 +33,7 @@
 
 emit('</div>\n')
 emit('<p>More Downloads...')
-emit('(RSS)</p>\n')
+emit(' (RSS)</p>\n')
 emit('</div>\n\n')
 
 emit('<div class="directory-item" id="important-news">\n')
Deleted: website/public_html/live/site-tools/templates/news-template.html
==============================================================================
--- website/public_html/live/site-tools/templates/news-template.html	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
+++ (empty file)
@@ -1,35 +0,0 @@
-${
-from boost_site.util import htmlencode
-
-entries = pages.match_pages(['feed/news/*.qbk', 'feed/history/*.qbk|released'], 5)
-}$            <div class="section-body">
-              ${
-emit('<ul class="toc">\n')
-emit('                ')
-for entry in entries:
-    emit('\n')
-    emit('                <li><span class=\n                "news-title">%s</span></li>' % (htmlencode(entry.id), entry.title_xml))
-emit('              </ul>')
-for entry in entries:
-    emit('\n')
-    emit('              <h2 class="news-title">\n')
-    emit('              <a name="i%s" id="i%s"></a>%s' % (entry.id, entry.id, htmlencode(entry.location), entry.title_xml))
-    emit('</h2>\n\n')
-    emit('              <p class="news-date">%s</p>\n\n' % (entry.web_date()))
-    emit('              <div class="news-description">\n')
-    emit('                <span class="brief"><span class="purpose">%s</span></span>' % (entry.purpose_xml))
-    emit('              </div>\n\n')
-    emit('<ul class="menu">\n')
-    emit('<li>')
-    emit('Details' % htmlencode(entry.location))
-    emit('</li>\n')
-    if(entry.download_item):
-        emit('<li>')
-        emit('Download' % htmlencode(entry.download_item))
-        emit('</li>\n')
-    if(entry.documentation):
-        emit('<li>')
-        emit('Documentation' % htmlencode(entry.documentation))
-        emit('</li>\n')
-    emit('</ul>\n')
-}$            </div>
Modified: website/public_html/live/sitemap.xml.php
==============================================================================
--- website/public_html/live/sitemap.xml.php	(original)
+++ website/public_html/live/sitemap.xml.php	2012-08-29 18:37:51 EDT (Wed, 29 Aug 2012)
@@ -2,12 +2,19 @@
     header('Content-Type: application/xml');
     echo '<?xml version="1.0" encoding="UTF-8"?>', "\n";
     define('USE_SERIALIZED_INFO', true);
+    require_once(dirname(__FILE__) . '/common/code/boost.php');
     require_once(dirname(__FILE__) . '/common/code/boost_libraries.php');
 ?>
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 
 <?php
 
+// Returns true if the library is part of the current release of boost.
+
+function current_version_filter($lib) {
+    return BoostVersion::current()->compare($lib['boost-version']) >= 0;
+}
+
 function xmlentities($text) {
     return str_replace(
         array('&', '<', '>', '"', "'"),
@@ -38,7 +45,7 @@
         unserialize(file_get_contents(dirname(__FILE__) . '/generated/libraries.txt')) :
         new boost_libraries(dirname(__FILE__) . '/doc/libraries.xml');
 
-foreach ($libs->get() as $lib) {
+foreach ($libs->get(null, 'current_version_filter') as $lib) {
     echo_sitemap_url("doc/libs/release/$lib[documentation]", '1.0', 'daily');
 }