Website Documentation ===================== # # Copyright 2002 Free Software Foundation # # Permission is granted to copy, distribute and/or modify this document # under the terms of the GNU Free Documentation License, Version 1.1 or # any later version published by the Free Software Foundation; with the # Invariant Sections being "GNU General Public License", the Front-Cover # texts being (a) (see below), and with the Back-Cover Texts being (b) # (see below). A copy of the license is included in the section entitled # "GNU Free Documentation License". # # (a) The FSF's Front-Cover Text is: # # A GNU Manual # # (b) The FSF's Back-Cover Text is: # # You have freedom to copy and modify this GNU Manual, like GNU # software. Copies published by the Free Software Foundation raise # funds for GNU development. # Location -------- The web site is held in the HTML CVS for gnue on http://savannah.gnu.org. It can be checked out using anonymous CVS, and anyone with write access to the GNUe Sources CVS will also have write access to the HTML CVS. Please read this readme before changing anything! At the moment, the site is available at both http://www.gnu.org/software/gnue/ and http://www.gnuenterprise.org/ Further mirrors might be added later if needed/ volunteered. The www.gnu.org version of the site is updated every time there is a CVS commit. The www.gnuenterprise.org version of the site is updated every 8 hours via a cron job, or can be manually checked-out as required. Note that the www.gnuenterprise.org version of the site also contains some other things not in CVS and hence not on the www.gnu.org site: * /debian/ * /downloads/ * /irc-logs/ * /irc-proxy-images/ * /old_downloads/ * /webalizer/ makesite.py ----------- The site consists of four main types of files; 1) "ordinary" files (html, images, executables, documents, etc.) 2) source files ( *.src). These are source files from which the makesite.py script generate an *.html file with the same name. Source files contain the html for the main body of each page (excluding the header and footer) and may also contain "pseudo-tags." 3) include files ( *.inc ). These are used by the makesite.py script to provide standard headers and footers and other includes. 4) The makesite.py file. Any "pseudo-tag" in the *.src file (an HTML tag starting with <$ and ending with >) will be stripped from the html and executed as a python function, including any parameters. All/any required functions should be defined in the makesite.py script. In order to keep the site up to date, all changes to pages which exist as both *.src and *.html versions should be made ONLY TO THE *.src VERSION of the page. The /admin/makesite.py script should then be run to generate the html pages just prior to CVS check-in. This may appear a fairly "old-fashioned" way of doing things, but it is preferred for a site like this that changes comparatively infrequently (say once a week), as it removes the overhead on the web server of running a dynamic web server tool like php or (given this project's fondness for python!) Zope. Basic Structure --------------- The *.inc scripts for the site are mainly in the web root directory. The *.src scripts - certainly those that use the includes - are mainly in the first-level sub-directories. The reason for this is that the whole site is built on relative, rather than absolute links, so that it will work both where it is hosted in the sub-directory of a web server (e.g. www.gnu.org/software/gnue) and at the root of a web server (e.g. www.gnuenterprise.org). I originally feared this was going to be a fugly restriction, but so far, all the *.src pages have naturally fitted into the first-level sub-directories. Lower level sub-directories tend to be for things that aren't *.src pages, such as downloads or documentation. THIS ALSO MEANS THAT ALL INTERNAL LINKS MUST BE WRITTEN AS RELATIVE, NOT ABSOLUTE LINKS (e.g. "../foo/bar.html", not "/software/gnue/foo/bar.html"). The only exceptions are links to material not in CVS, and hence only on the www.gnuenterprise.org version of the site, which should be linked to by the full absolute url (e.g. "http://www.gnuenterprise.org/irc-logs/gnue-public.log") For historic reasons, the main FAQ (faq.html) sits in the web root directory. This means it can't use the includes (but, as people are more likely to want to print this off, that's a feature, not a bug). Page Template ------------- The basic template for a *.src page is:

Title

Sub-titles (if any)

Sub-sub-title (very rare)

Content

Note there are no explicit markers to insert the header and footer includes - these are done automatically for _any_ *.src page by the makesite.py script. For bulleted lists, do not use