Giving FrontPage the boot

by Jeremy Jones

My wife is starting her own business and needs a web presence for it. Since I am the only geek she knows, I was her first choice in being the one to create her website. I expressed my absolute willingness to do whatever she wanted me to do, but I warned her that it would probably look like the droppings of a Siberian mountain goat. For some odd reason, that didn't dissuade her.

So, what tool was I going to use to create my^H^Hher website? I looked into Nvu, but I wasn't overly impressed with what I saw. I mentioned what I was doing to my boss, Tony, and he brought up FrontPage, whipped up a simple demo site in navigation view, and threw a navigation bar on one of the pages. Tada! That's all there is to it. I've got to admit that I was pretty impressed by what I saw FrontPage doing. FP 2003 wasn't at all the toy I remember some of the older versions being, so I decided to give it a try.

The first thing I did was lay out the site in navigation view and created all the pages that she needed. Next I began trying to figure out how to insert a navigation bar onto all the pages. I'm sure there is an easier way to do it, and I'm also pretty sure that one of you will chime in and point me in the right direction, but the best way that I found was to use frames and insert the navigation bar in the top frame. Well, I don't particularly want to use frames. I could create a page template and create all the other pages from that page template, but what would happen I wanted to change the template? Would changes from the page template populate to all the child pages? I really don't know.

The "ease of use" promise of Microsofty products was quickly fading for me. Each failed attempt to get things working in FrontPage added to my frustration and subtracted from the time I have to work on this site. I decided to scrap the idea of using FrontPage. It was turning out to be way too much work. Maybe the initial learning curve eventually pays off, but I doubt it would pay off for me. At least it wouldn't pay off for this one website.

If I didn't use FrontPage, what would I use? It should be pretty easy to write a script or two to manage the site navigation and put all the pieces of the website together. I did a quick search on Google and SourceForge to see if someone else had created something like this, but I came up empty. Not totally, but it looked like the projects which did what I was looking for hadn't been updated in a couple of years. I decided to hack together a really simple, site-specific templating script to throw Debra's site together. I began with the layout for most of the pages on the site. There would be a top area for navigation and maybe a logo. I also wanted an optional region on the left side of the page for navigation within a specific area of the site. The content for each page would occupy the majority of the middle-right section of each page. And the very bottom would a footer area.

The architecture for this templating system is pretty simple. So simple, that I'm almost ashamed to call it a "templating system". There is an XML file which describes the structure of the site. There are individual XML files for the header, left pane, content of each page, and footer region. Each page can either use the default header, footer, and left pane, or it can specify its own. I could have used plain Python code instead of XML, but decided to use XML instead, just in case I wanted to use this templating system again. I then created a Python script to parse the XML files and create the HTML files.

So far, it's working pretty well. I can add new pages and automatically have the page added to the overall navigation of the site. If I change the site-wide header, I just have to re-run my Python script and it updates all the files in the site.

Sure, I could have looked into using includes, but I would have to specify includes in each page. Plus, the navigation structure, specifically the optional left pane, would have been a little work to manage.

FrontPage might still have have its uses. I might use it for some page-specific design details. I can only believe that it will help this design-challenged hacker.

What does all this say about me? Either I'm too stupid or impatient to figure out FrontPage, or I'm just unwilling to be stuck in the range of ways of doing things which FrontPage provides. I hope it's the latter.


What does all this say about FrontPage? It's a fine tool as long as you're willing to work within what it provides. And even if you don't use it for website management (which was the biggest issue I had with it), you can still at least use it to help lay out individual pages.

6 Comments

rjpotts
2005-11-26 15:33:15
Giving FrontPage the boot-
I would suggest looking at Macromedia Contribute. (http://macromedia.com/software/contribute/?promoid=BINP) or maybe Freeway Express (http://www.softpress.com/en/freeway/express_interface).
Inkling
2005-11-27 14:01:29
Rapidweaver on Macs
If you have access to a Mac, try Rapidweaver at:


http://www.realmacsoftware.com/rapidweaver/


It's as easy to use as a good word processor, produces high quality code, and changing the look is a simple two-step process of selecting a new, professionally designed template. I use it for my small business website at www.Inklingbooks.com and love it.


Helvécio
2005-11-27 20:07:38
Rapidweaver on Macs
I started reading the original post and it reminded me of Rapidweaver. It's simply one of the best tools I've ever seen for fast creation of a website.


And, if you want to tweak a little, you can even create your own template, using standard html and css code.

Fuzzyman
2005-11-29 04:21:30
rest2web
Ok, so it's a bit late... You've already started hacking on your own project.


http://www.voidspace.org.uk/python/rest2web/


rest2web creates websites from a template and content files - automatically building index pages and sidebars if you want.


Content can be stored in HTML or in reSTructured text, there's a macro system for extending rest2web etc etc


It's a good solution for Python geeks anyway.


:-)

jmjones
2005-11-29 06:09:19
rest2web
I think I stumbled across a link to this when I decided to give FrontPage the boot. One thing that turned me away from it was reST. Don't get me wrong. I'm a big fan of reST. I've used it for every article I've had published here at O'Reilly. It's a great tool. But it has always stricken me as being more content-centric than layout-centric. This is great when you don't want to have to futz around with HTML when all you want to do is write some documentation. But if you're concerned about layout, I tend to prefer plain HTMl.


Now, on to rest2web. I really wish I would've looked into it more, but I think the "reST" part of it turned me away. It does look like it would do everything that I need it to do. However, one thing I like about my solution is that it feels more aspect-oriented in a sense. I can apply a header or footer to a page without having to modify the page itself. Sure, I have to change something, but rather than changing it in each individual file, I just change one "master" file.


Anyway, I might dig into rest2web and see if it might provide more flexibility for me for the long haul. Thanks for the tip and the feedback!

stratdat
2005-11-30 19:53:16
FrontPage, bad. Roll your own templating system, bad.
There are so many ways to do this with existing software that it is almost never a good idea to roll your own templating system.


In the Perl world TemplateToolkit is probably the best equipt to deal with this kind of problem. Mason is another. Lots of people have used them and worked out what they want. There are books about it.


Sometimes it seems harder to survive the initial learning curve than rolling your own solution but before long you are adding a bit here and another bit there to deal with situations you had not anticipated. And unless you are a saint, there's no documentation, so when you come back to maintain your site you have to rediscover how things are done again.


Make the investment up front by finding an actively maintained solution you can live with and then enjoy the free bug fixes, supportive community and documentation that your "rollie" will likely never have.