Updating and Editing Website Content

Getting Content

The website content lives as a sibling project of the Boost sources. This makes it easy to keep the website content up to date without interfeering with the development and release of the Boost Libraries. To get the content follow the regular Sourceforge CVS instructions but using website as the module to obtain. For example:

cvs -z3 -d:ext:developername@cvs.sourceforge.net:/cvsroot/boost co -P website

Existing Page

The web content is structured to be as simple as possible to make generic editing possible. At minimum only a text editor and HTML Tidy are needed to edit content. The content uses XHTML 1.0 Strict for various reasons, the most important being to increase accessibility and to enforce the separation of style from content. After getting the content you want to edit as above, make the changes you want and run the result through HTML Tidy with these options:

tidy --tidy-mark no -i -wrap 78 -m -asxhtml --doctype strict fname

Running HTML Tidy with a consistent set of options also helps in keeping an accurate change history in CVS. There are examples of the kinds of styles supported either directly or through the use of [class="value"] attributes for the various XHTML tags. Please pay attention to any errors and warning that HTML Tidy mentions and strive to remove all of them.

The pages should be viewable in most browsers. If possible test you changes in as many as possible. Preferably at least with IE and one other modern browser if you are on Windows. But if you are on another platform testing with the "default" browser is best. Normally viewing the page in outside of the a web server context will only show you the content and part of the footer. This is because the site uses Server Side Includes (SSI) which most browsers will not process. To look at the complete content you will need to either run your own Apache server, or wait for the test site to update with the new content.

New Page

To make adding new pages easier there is a template to get one started. To start copy the template to the section of the website you want to add to and name the new file with a reasonably clear name. The section is up to you but the inteded type of content for each is:

Introduction
Content to help new users in uderstanding what Boost is for and what it is about. This is the one place where new visitors are going to visit. Directory: website/users
Community
For users who are interested in participating, or are already participitating, this section describes how the Boost community of users and developers functions. Directory: website/community
Development
Prospective or existing Boost developers make use of this section to quickly get to the most frequetly used content. This section is intended to hold the references to resources or directly include content that changes frequently. Or content that only pertains to library developers, although it may be of more widespread interest as users become more involved in the Boost community. Directory: website/development
Support
Content to help users in getting problems resolved can go here. This would include both public support as informally provided by the Boost developers and the over all Boost community and commercial support when available. Directory: website/support
Documentation
This section organizes documents specific to the Boost libraries. This includes at minimum the library documentation published with each of the Boost releases. Also included is access to the community maintained Wiki. Directory: website/support

To provide the section user interface look and feel there are some changes that need to be done to the template:

  • Each section has a different CSS style reference included in the head section. This reference needs to change to one of:

    • Introduction: /style/section-boost.css
    • Community: /style/section-community.css
    • Development: /style/section-development.css
    • Support: /style/section-support.css
    • Documentation: /style/section-doc.css
  • Each section displays a different context sensitive sidebar menu through the use of SSI. The reference to the sidebar to display needs to change in the sidebar section to one of:

    • Introduction: /common/sidebar-boost.html
    • Community: /common/sidebar-community.html
    • Development: /common/sidebar-development.html
    • Support: /common/sidebar-support.html
    • Documentation: /common/sidebar-doc.html

    In the sidebar section there are two menus included the first is common to all the pages and contains the download link and search box. Do not replace that sidebar (/common/sidebar-common.html). It's the second #include that should be changed to reflect the current section.

  • Since this is a new page, you will also need to insert your own corresponding copyright in the footer.

  • To insert the new content you need to insert it into the section-body section. Replace the {stuff} placeholder with the content you want. In addition you might also want to change the title, in the head, and in the section-title section.

In addition to the immediate content for the new page one needs to add an entry to the page so it can be accessed from the sidebar and index. See below...

Menus, Sidebars, and Index

The various navigation elements are structured to make adding new entries easy and to keep all places where wuch entries show consistent. To do this the site makes use of SSI to reduce the locations that have those entries to one. This means that changing it at the single common place one doesn't have to worry about changing all the pages, they all reflect the new content immediately. To add items to the various section menus edit the corresponding menu file in the website/common directory:

  • Introduction: /common/menu-boost.html
  • Community: /common/menu-community.html
  • Development: /common/menu-development.html
  • Support: /common/menu-support.html
  • Documentation: /common/menu-doc.html