The Project Website |
Home | Project Documentation | Mailing Lists | Site Map |
The project website serves as a central point of contact for our users. From this site, users can look up indian language information, check on the status of our projects, join mailing lists and contribute to the community.
Our website has the following major components:
Documentation (the Handbook, FAQ, etc.) generated from SGML sources, available in a few distribution formats.
Collaborative development facilities, by virtue of it being hosted under the SourceForge system.
``Glue'' pages, to guide readers and hold all the information together.
Navigation aids helping our users keep track of where they are in the website.
Managing a large site can rapidly suck up the little time that we have for our work. Automation is an imperative.
Website Management Goals
Be able to incorporate information from independently managed sources into the website.
Offer a consistent ``look and feel'' with convenient navigational aids to our readers.
Scalability to thousands of pages and a few tens of volunteer maintainers.
The ability to maintain and modify the site ``offline'', since it is not reasonable to require our volunteer maintainers living in developing countries to be well-connected to the Internet.
The entire process of building and verifying the website should be feasible even without Internet access.
The ability for multiple people to be able maintain the website without colliding with each other's efforts.
The use of open-source tools, in keeping with the overall goals of our project.
The core of our website management structure is built over a small number of design decisions:
In traditional unix fashion, the website is configured and controlled by standard unix utilities like make. Configuration files are ``flat'' files, easily editable by any text editor.
We use SourceForge's collaborative development features to manage the website, just like for the rest of the project's documentation and sources.
CVS, SourceForge's source control system easily scales to many hundreds of developers. CVS also allows for offline work, requiring website maintainers to be connected to the Internet only when checking in their modifications.
We separate the content of the website from its structure.
We use a templating system, WebMake, to lay out the website from its component sources. The WebMake specification also allows us to add consistent navigation to all the pages in the site.
Note: Despite the similarity in their names, make and WebMake are designed for different tasks.
In this section we will describe the website generation scripts.
Website generation is done from checked out documentation sources. Generation of documentation is done from these sources as described in Section 3. Once the main documentation has been generated successfully, the website creation scripts do the task of integrating everything into a consistent website.
The website sources are kept in a separate language-specific toplevel directory (see Figure 3)
Figure 3. Location of the website sources
doc/ | +---- en_US.ISO8859-1/ | | | +---- website/ | | | | | +---- contents/ | | | +---- articles | | | +---- books | +---- src/
1Description of Figure 3
Location of the site in the source tree. Directory structure. Controlling makefile (adding a new external source). Handling images. Building the site. Publishing the site.
The concept of managing a large website using make is very likely to be new to readers unfamiliar with the unix way of life.
Nik Clayton wrote a series of articles for the DaemonNews magazine on using make to manage websites. These are listed in in the section on additional reading.
The FreeBSD website is managed using make.
This, and other project documentation, can be downloaded from [ http://indic-computing.sourceforge.net/documentation.html ].
Copyright © 2001--2009 The Indic-Computing Project. Contact: jkoshy |
View document revision history |