:doctype: book

Title: MaintainingTheWebPages

+++<a name="MaintainingTheWebPages-HowtheArieswebsiteworks">++++++</a>+++

= How the Aries web site works

The Aries site is built using CMS.
To edit the site you must be an Aries committer, the  ID and password are the same ones as you use for Aries SVN.

The easiest way to edit pages is to install the CMS bookmarklet as described https://cms.apache.org/#bookmark[here]

Navigate to the web page you would like to edit and then click the CMS bookmarklet.

The steps in making a change to the site are:

* Edit
* Submit
* Commit your changes
* Check the 'staged' site
* If the content looks good, publish the site

The Wiki syntax is called Markdown and is documented http://www.freewisdom.org/projects/python-markdown/[here].
Some extensions are installed in  the CMS system (eg tables, syntax highlighting).

More information on CMS is  available http://wiki.apache.org/general/ApacheCms2010[here]

= Making major changes

Because the site is all in SVN its possible to check it out, make and test changes locally and then check in again much as you woudl with code changes.
To do this you will need:

* A local copy of the cms build tools
* A local setup of Apache

First, checkout the site , like this:

 svn co https://svn.apache.org/repos/asf/aries/site/trunk/ site

== To build the site using the build tools.

First check the cms build tools out of SVN:

 svn co https://svn.apache.org/repos/infra/websites/cms/build/ buildtools

To run the build_site.pl script you will need to install the Python version  of Markup.
The instructions for finding and installing Python pre-reqs are given http://wiki.apache.org/general/ApacheCMSFAQ[here]

Then to build the site use this command:

perl build_site.pl --source-base /path/to/newsite/trunk/ --target-base /path/to/output/

which will create *.html in /path/to/output/content

== Check the site on a local server.

Use a vhost to check the site.
On a Mac this means adding the following stanza to /etc/apache2/extra/httpd-vhosts.conf

<VirtualHost *:80>     DocumentRoot "/Users/zoe/Sites/zaries/www"     ServerName zaries     ErrorLog "/Users/zoe/Sites/zaries/error.log"     CustomLog "/Users/zoe/Sites/zaries/access.log" custom

 LogLevel debug

</VirtualHost>

To test the site,  move it like this:

mv /path/to/output/content /Users/zoe/Sites/zaries/www

Then navigate to http://zaries in a browser.

#Add menuitem  Check out the site by using  svn co https://svn.apache.org/repos/asf/aries/site/trunk/ site

update the file under templates/navigation.mdtext

check in the changes by using svn commit

The following steps may not needed if the changes were displayed ok.

Navigate to a lower level page in Apache Aries site and click the CMS bookmarklet.

Check the staging page to verify the menuitem is displayed correct.

Publish the site.
