Yesterday I created Rss2view
as the first step towards being able to publish RSS feeds as HTML. Why would I want to do that? Well, RSS produces a useful summary of the content on a page or site, complete with links to the original content. There are two reasons why it would be good to have this information as HTML:
I can use the RSS feed from my own blog as a source for automatically generating a short summary of the current content, which I can then publish as a shortcut index on various pages within the site (I'm also thinking this could be a quick way of generating an archive index page that provides a scannable digest of the content on each archive page).
I can aggregate RSS feeds from other sites into a single page that I'll use as an at-a-glance reference to the latest postings on sites that I follow (I would much rather do this on my website, so that site visitors can share the benefit of viewing it, rather than simply viewing them in private, which is what Userland users do).
As it stands, Rss2view is only a first step towards that. It simply allows you to view any RSS feed when published via HTML, by entering the URL for the feed in the form input box on the page. To do either of the more sophisticated items on my wishlist above, I will have to extend the code to make it write to a file, and also add some kind of trigger function to limit the number of times it reads external feeds (reading RSS is something to be done sparingly, because it uses up the publisher's bandwidth. It should always be done with respect for the original publisher; in view of this, the other enhancement I'd like to make to Rss2view is to write the name and description of the site at the top of newsfeed, rather than just the URL of the feed).
This project is an important part of the pre-launch work for Loosely Coupled, so expect to read more on this soon.
One of the most difficult challenges when building a site using several different online services is maintaining a consistent look across the various sections of the site. Any change to the site template will have to be replicated across several different servers, which often means making manual changes to multiple files a change management nightmare. The only realistic way to ensure consistency in these circumstances is to start off with a well-planned template framework that clearly separates the fixed common elements from the variable content that changes within each section or page.
There are three main ways of separating areas within a web page using HTML:
CSS It is possible to use Cascading Style Sheets to control the placement of content on a web page, but for the moment it's not advisable because support is very patchy across different browser versions. That's not to say style sheets have no role to play at all. On the contrary, they are extremely useful for controlling the presentation of text, and later posts will include examples of how CSS is being used for that purpose on Loosely Coupled. But for the moment, there are better ways of formatting your page layout.
Frames Many web designers use frames to separate the fixed elements in a site template from the content areas. It means you can maintain a single source file for the common elements, even if the content comes from several different servers. But the disadvantage is that it makes it all but impossible for visitors to link to specific content pages, and it will also keep most of your pages out of the reach of search engines, unless you're very clever in the way that you handle frames. Personally, I can't think of any circumstances when I would advocate the use of frames.
Tables Even though they have their idiosyncracies, tables are still the best way to manage page layout. Loosely Coupled uses a relatively simple set of nested tables to cleanly divide the page into five main areas. The first area across the top of the page contains the masthead and then the menu bar below it. This area is a completely separate table from the rest of the page so that it loads first, without forcing the visitor to wait for the rest of the content to download. The next three areas are separate columns of a table running across the page from left to right. The first column contains links to various features, and is common across all pages. For usability reasons, it contains very little text. The next two areas contain the variable content. The middle column is where the main body of the content goes, while the right hand column is an optional sidebar containing links to related content. The fifth element is a final table at the bottom of the page containing the page footer currently this is little more than a copyright notice, but it may be expanded later. Having divided the template framework into these five clearly defined areas, it confines the thinking about any changes or new page layouts to one or two specific areas rather than having to rework the entire template, which massively simplifies the content management challenge.
The framework has been based on best practice observed at business websites across the web, and is designed to conform to usability standards like those of Jakob Nielsen, mentioned in my previous posting. I had hoped to write at greater length over the past week about how the template has been designed, but that task will now have to wait until later, as other priorities have intruded. However I hope this brief introduction gives an insight into some of the principles used in the design of the framework.