New website (inspired by the "Website layout" thread)

Amar Takhar verm at drunkmonk.net
Thu Feb 5 22:43:41 PST 2004


Over a beer (OK OK, several) with a friend during new years, the topic 
came up of the current dragonfly.org website.  I found it quite hard to 
follow, and saw that is very complex without any real gain at all.

So, instead of starting a huge thread on converting to SGML, I spent a few hours 
tonight and did it myself, so that everyone could actually see the results.

Please peruse http://dragonfly.drunkmonk.net to see the final product.

You can grab the source at: http://dragonfly.drunkmonk.net/www.tar.bz2


As always, comments are welcome!

(Note: there are probably mistakes, as i did this very quickly as a
proof-of-concept only, though it is actually in it's *completed* form, just not 
nitpicked to death to ensure correctness)



Below are a few notes I made during the conversion process:

Why SGML?

A few reasons:
* The SGML HTML DTD will do offline-HTML syntax checking.
* Static website (improves speed).
* Site layout in CVS is exactly the same as WWW.
* DSSSL backend provides the ability to add advanced features.


General HTML:
* The website is now backwards compatible to first generation browsers, while 
  some people see this as unimportant, I'd like to say a few things on this 
  subject:
	- A lot of people still use first generation browsers
	- Advanced CSS takes a while to compile (even on modern browsers)
	- It makes things look very broken for text-only browsers
	- Advanced CSS is brutal for people using teleprompters for the blind
	- This is a technical site, not http://www.disney.com
* The site looks far better in text-only browsers. (eg, w3m www.dragonflybsd.org 
  vs w3m dfly.ten15.org)


Search engine enhancements:
* added meta keywords
* added meta http-equiv content type
* any URLs ending in *.cgi are normally NOT indexed by search engines, 
  this is very bad, as they assume it is dynamic content -- while some 
  search engines are smart enough to figure this out, most are not.


URLS:
* Lowercase is far better for the URLs, as this is a technical site, 
  most people will be typing in the locations by hand, thus uppercase is 
  annoying.

General:
* Made an ICO, it's very simple, used from smalldf.jpg
* Added ALT tags for the blind, where necessary.


Added features:
* CGI to handle error documents (found in /error, /cgi/error.cgi, thanks petef!)
* Site map -- this is *VERY* important, to help those users who are not sure 
  what they are looking for, it allows you to link various areas of the site 
  using alternate names.
* Search engine using HTDig.
* <insert other things i may have forgotten in here>


Nits:
* In order to support that top <hr> the main <table> had to be made a 
  bit more complex than I'd like, I'd say lose it, it's not worth the 
  complexity (in rendering) just for a single line.

Not done:
* Summary fields for tables, for the blind.


Notes:
* It is *very* possible to use a WYSIWYG editor with this system, all that is 
  required is inserting proper <!-- ... --> blocks in various areas of the site, 
  then cutting and pasting the source created within the specific blocks 
  (editing the _rendered_ HTML page directly) then inserting them back into the 
  SGML source -- most fancy editors can do this automatically, hense why you see 
  a lot of comment blocks in the larger sites.
* Static pages are cool.


For Apache, this is the configuration i'm currently using:

<VirtualHost dragonfly.drunkmonk.net>
        ServerAdmin webmaster at xxxxxxxxxxxxx
        DocumentRoot /www/www.dragonfly.org
        ScriptAlias /cgi/ "/www/www.dragonfly.org/cgi/"
        ServerName www.ten15.org
        ErrorLog /logs/www/www.dragonfly.org/error_log
        CustomLog /logs/www/www.dragonfly.org/access_log combined
        ErrorDocument 400 /cgi/error.cgi?400
        ErrorDocument 403 /cgi/error.cgi?403
        ErrorDocument 404 /cgi/error.cgi?404
        ErrorDocument 408 /cgi/error.cgi?408
        ErrorDocument 500 /cgi/error.cgi?500
</VirtualHost>

For HTDig, read htsearch.README in the cgi directory, it's extremely
straightforward. rundig -c /www/www.dragonfly.org/htdig/htdig.conf will
update the db (default locations are all in htdig.conf)


Amar.





More information about the Submit mailing list