Antelucan Logo. Book Elves Logo. Winger Logo. Elf Life Logo.


Kipper
Recent news Kipper features
  • Multiple archives in one pass
  • Controlled by simple config files and existing directory architecture
  • Extensive navigation includes optional archive jump for ongoing series
  • Automatic archive listings
  • Automatic include files for featuring or listing updates
  • Displays number of posts in each archive
  • Automatic RSS feeds for every separate archive
  • Automatic social bookmarks
  • Automatic chicklets (for adding to Google, Yahoo homepages, etc)
About Kipper

Kipper is the nickname for the relatively exclusive archiving system on my websites. I finally made myself learn some PHP so that I could write it, because problems with properly archiving and displaying content has been the bane of my existence since I first got on the internet in 1999.

I have used AutoKeen since its creation, and tried a few other archiving systems besides, but all of them have had particular limitations. Even blogs like WordPress seem wrong, somehow--it's like we're trying to pound our irregular-shaped peg into a blog-shaped hole.

AutoKeen's biggest sin is that it was created to archive one comic and one comic only--so that a cartoonist who is probably going to want to also display art and other content separately from that one comic is on their own.

For that matter, even archive scripts like ComicGallery tend to be written with one folder in mind. There is nothing wrong with that.

I had switched to ComicGallery myself, because I wanted to create more than one archive on my AutoKeen site. The script is very light, and can simply be copied in order to populate a site with many archives. That's not so bad, but then I started tweaking the script. I added the ability to read text files. I added a preload feature. And then it became a drag to have to update every single copy of the script. So then I rewrote ComicGallery to operate from remotely fed variables, so that only one copy of the script itself was necessary. It became a central "engine", like AutoKeen.

That was good, but there were still a couple of problems. ComicGallery creates dynamic pages which are technically harder on the server. I tried to reduce this problem with a caching system, but soon found that if the script malfunctioned in any way, the errors would be cached. Moreover, the dynamic part of the URL was ignored by our log analysis system.

A better solution seemed to be to start over with a script that makes static pages, like AutoKeen, but can be run from multiple triggers, like my ComicGallery revision. To further expand its capabilities, have it also loop through a designated archive folder for subdirectories, so that it can AUTOMATICALLY build a range of archives all in one pass.

So that's what Kipper does. It is a multi-archive engine that builds static pages from any number of folders containing archive subdirectories. It requires no database and no administrative server access. It holds back future entries, and performs updates with a PHP class called VirtualCron.

The navigation buttons are fairly extensive, including the ability to jump through a progression of archives, if many archives are linked as part of a larger story. A full list of entries is created on the home page for every archive subdirectory. Feature inserts are created automatically, so that anything can be included on the homepage at a moment's notice.

The most recent addition was RSS feeds. Every archive subdirectory has them, along with links to a full range of available feed services. Using this, any comic or blog created by Kipper can be delivered via email, attached to a Yahoo! or Google homepage, or even fed to a desktop reader. Every feed entry includes a scaled-down navigation bar, so that you can jump right back into the story from wherever you happen to be.

I had to extend comic updating downtime in order to do this, but this is the best long-term investment in comics and writing online that I've ever made.



Copyright © 2008 Carson Fire · Privacy policy

Kipper Button Valid XHTML 1.0 Transitional Valid CSS!