Building Complex Outlines In Conversant

Recently the Conversant folks added a weboutline macro to the mix of features.

Maintaining a hierarchical site map by hand doesn’t sound like that daunting of a prospect, but once you pass a certain threshold it gets to be a nightmare. I ran into this problem at my Overpopulation.Com site where I ended up with several hundred pages in a FAQ-like arrangement that was a real pain to manage (which meant I simply didn’t).

With a few macros, however, I can produce a pretty decent looking site outline. I’m still not completely satisfied with the site outline — it presents too much information — but it’s a start.

There are several advantages to the approach that Conversant uses to achieve this outline. First, it is done at the macro level so it is possible to mix the web outline with other text and even other macros. In fact each of the major headings in my Overpopulation.Com outline is a separate macro.

Second, the macro accepts templates so I can control the output in any number of ways, and again I can mix and match to get exactly the page I want.

Third, the macro smartly caches the results of the web outline. This is crucial when you start talking about hundreds of pages. The weboutline macro has a “cache” variable which can be set to “false” (i.e. it will dynamically generate the outline every time) and can also be set to a numeric value such as “72” which is effectively the number of hours that the system will wait before updating the outline and in the meantime it serves up a cached version of the outline.

This works very well for a site like Overpopulation.Com where the structure is unlikely to change significantly on a daily basis.

My XFL Web Site and A Conversant Tutorial/Guide

I should know better, but I couldn’t resist starting up a new site devoted to the XFL.

Anyway the upshot is as I’ve been working on the site at home I’ve had my handy dandy screen shot utility up and running taking dozens of screen shots of the building process. Once the site is done (sometime before Saturday night I hope) I’m going to throw all of the screen shots and templates and a bunch of the other things I’ve worked on into PageMaker and then spit out a .PDF file showing step by step how web sites are created in Conversant and how the flexibility of the system makes it easy to custom-tailor solutions relatively quickly and without a lot of headaches.

RSS Feeds in Conversant

Now this is cool. Conversant could already output RSS/RDF files, but now it can display them as well with a handy RSSBOX macro. Here, for example, is the RSS Feed from my LeftWatch.Com site,

Damn Those Corporations for [Giving/Not Giving] Tsunami Aid

Ramsey Clark Joins Saddam Hussein’s Legal Team

M. Shahid Alam On 9/11 Terrorists

Project Censored Becomes Project Censorship

James Wolcott Roots for Death and Destruction

Like almost everything in Conversant, the appearance of the RSS feed is completely customizable, although I haven’t taken the time to customize the look in the above example.

Is Conversant Too Complex?

Giles Turnbull evaluates three free web creation tools in a BBC article. Turnbull includes Conversant, which powers this web site. Basically Turnbull says Conversant is powerful, but complex.

Conversant sites, like Manila sites, are potentially very powerful, but there is some learning to be done, even for experienced web users… the process of creating the site of your dreams might be time-consuming.

Once you have got the hang of using Conversant, you will be able to do some really clever things with your website. Create new templates for whizzy designs, automatically send email to regular readers when new items are posted, even manage a collection of digital photos, or any other files.

How complex is Conversant? From my experience, Conversant is about as complex as desktop web authoring tools such as Dreamweaver. I am far from a Dreamweaver expert and many parts of the program overwhelm me (i.e. I have no clue what certain features are supposed to accomplish). I can use Dreamweaver well enough, however, to create and update a web site with thousands of pages.

The complexity of Conversant is comparable to the sort of complexity found in an application such as Dreamweaver. If all you want is a basic weblog, end of story, then Conversant might be overkill. On the other hand it is perfect for small to medium to large websites where a) applications such as Dreamweaver really start to break down as far as effectively managing a site structure, and b) every other product out there is either much more expensive and even more complex.

I’ve got about 4,000 web pages on several different domains and receive about 2.4 million page views a year — relatively small potatoes but not bad for just one person in his spare time. For me, although there was a bit of learning curve, Conversant is actually far less complicated than the alternatives and delivers a lot of features that frankly I haven’t seen in other content management systems.

Flexible Database-Driven System + Creativity = Awesome Web Building Power

Jorn Barger, whose Robot Wisdom web log I visit every day, recently had an interesting essay on an idea that seems to be gaining speed; namely that the huge processor speed + huge hard drives + broadband = a revolution in how people store and access information.

Managing all that information, however, starts to be a problem. In fact, managing the relatively small amount of information I post on the web is often a big problem. I estimate I post an average of 5 articles a day overall, with many different themes and topics. Figuring out how to organize them is an enormous headache, much less actually finding the time to do it.

Barger apparently has the same problem. Barger writes,

Webloggers have a headstart on the challenge of building their own, because they’ve started archiving the best links, with annotations. They can go back thru these archives and sort the links by topic– my netlit portal was a first try at this, using the categories: fun, art, media, issues, net, tech, science, history, search, shop.

But I feel like that experiment was a near-complete failure– I hardly ever use them myself. Esthetically, they’re just too noisy. (I trimmed almost all the pullquotes when I sorted them, which may have been a mistake, and I started rewriting my blurbs, but it didn’t help that much, imho.)

A big problem that Barger hints is also the fact that often relations between topics are “fuzzy.” Sometimes I want to view information on Cuban executions as part of a Cuba topics page — other times I want to read about it as part of a death penalty topics page (not to mention as part of a Fidel Castro biography page). Once you get more than a few of these, the whole endeavor becomes a nightmare.

Conversant goes a long way to solving this problem with what it calls an Advanced Query Page type. The search page on this site is a simple Advanced Query Page, but there is a lot of power behind the hood. For example the new books page I added the other day looks like a typical web page, but it in fact is an Advanced Query Page and is dynamically generated.

In this case, all the page does is perform a search looking for anything I’ve categorized as being about “Books”, and then returns the web pages it finds in a neat ordered list. I could easily insert prefatory text explaining my love of books, etc., as well. And once I’ve got it set I don’t have to worry about updating the page — it will take care of itself.

Plus, I could easily do more refined pages. For example, if I had written a lot of articles about a specific computer game such as “Diablo II,” I could easily create a search that simply looked for that phrase where it occurs in web pages and return a list of them.

This makes it very easy to take any HTML document base and quickly create a very detailed, sophisticated directory of those documents. Powerful stuff.

The Beauty of Bound URL Searching (Another Conversant Rave)

There are two sorts of features that I adore about Conversant. The first are features that other software can do, but that Conversant implements better. The second are features that accomplish tasks that, to my knowledge, are next to impossible to accomplish otherwise (at least not easily). An example of the latter sort of feature that I’ve been using a lot lately is something called an advanced query page that searches specifically on bound URLs.

What the heck does that gibberish mean? Let me explain. Everything on this and my other web sites starts out as a discussion group message. So, for example, a few days the World Health Organization announced that polio has been eradicated in the Pacific Rim. I wrote up my opinion of this announcement and posted it as message number 843 on my overpopulation site, so you can read it if you want at http://www.overpopulation.com/843. Now because it’s an article I wrote it’s special (obviously 🙂 and I want to differentiate it from a message from one of my wonderful visitors informing how much my site sucks. So I bind the message to a URL.

In this case, for example, I’ve got a subdirectory called “articles”, subdivided further by year, so at some point I go back and bind message 843 to a URl that looks like this: http://www.overpopulation.com/articles/2000/000040.html. I’ve got a template that’s relatively easy to modify that tells Conversant exactly how I want my message to look when its displayed as a typical web page (and its these bound URLs that I submit to search engines).

So far this is pretty straightforward and very similar to what would have happened if I’d used DreamWeaver (except it took me a lot more time to manage things using DreamWeaver). Here’s where the fun begins. On the overpopulation site I’ve also got a page devoted specifically to polio information, http://www.overpopulation.com/polio.html, and probably another 100 pages on various topics from measles to the oil supply.

I’ve always wanted to include links on these topic pages back to the new articles, so the polio page would include links to all of the articles I’d written about polio. Sounds easy, but believe me it’s not. Ever try to keep track of this sort of thing when you’ve got upwards of 100 topic pages and dozens of new stories a month? And then do that on about 7 sites? With a flat HTML system a la Dreamweaver or whatever, it’s simply not worth doing.

Conversant, however, makes it extremely easy to manage this task. Say I realize I haven’t updated the polio page in a few weeks and want to add links to any new articles. I just got to the polio page and click on the most recent article to get its date. Then I just go to a search page that I set up to search only messages that have been bound to URLs, and in an instant I’ve got a list of any new articles that have been bound to a URL and contain the word polio.

This beats the heck out of the typical CGI-oriented search engine software which usually can’t differentiate between different types of messages. It gets even better because I can assign labels to messages. For example, one thing I do on a daily basis is compile a long list of hyperlinks to the latest world news stories for Overpopulation.Com. Conversant let me create labels, which are really just user-defined attributes attached to a message. For example, I created a label called “News Headlines” and when I create a new message just with news headlines from around the world I give that message the “News Headlines” label. When I actually write an article about some topic, I assign it a different label I’ve created called something like “Articles.”

Here’s the beauty of it. On the old site if I wanted to search for instances of the word “polio” I would have had to wade through page after page of URLs that contained the word polio but only in the headline of a hyperlinked story. Now at the click of a button I can tell Conversant to return not only all URLs that contain the word “polio” but also tell it that I’m only interested in seeing those URLs which are also articles that I’ve actually written.

I know I’m starting to sound like Ron Popeil, but that’s not all folks. I hate URLs. I am the king of mistyping URLs and am no good at keeping track of them. Conversant takes care of this problem for me. When I tell Conversant to take a new article I’ve written as a message and also make it available as a Bound URL, the software automatically creates a hyperlinked resource to that URL. Basically this means I no longer have to worry about what the actual URL my article from last October on polio was. Instead I can just type in the title of the article, put a pipe (“|”) before and after the title and Conversant automatically takes care of hyperlinking it correctly.

What I used to simply avoid doing because the amount of time and headaches involved, I can now accomplish in a couple of hours.

And there’s more still!!! On a site like Overpopulation.Com I’ve got close to 1,000 pages. One of the things I always wanted to do was add more internal hyperlinks, so if a visitor was reading my latest updated about the World Health Organization’s effort to eradicate polio, the first instance of polio in that article would link back to my main page about the crippling disease. That way people deep in the site could easily find their way back to more general, comprehensive information.

Again, Conversant takes what would be a nightmare of a project and makes it simple. All I need to do to accomplish this is first create a resource, which is very straightforward, and simply call it polio. Conversant asks me what I’d like to the polio resource to link to and I type in my main polio page.

Now all I have to do is search for the word “polio” on all the web pages on the site, bring them up for editing, and put a pipe (“|”) at the beginning and the end of the word. Presto — in record time I can have pages very deep in the web site that discuss polio point back to the general polio page, and I can keep this updated with a minimal amount of effort.