The New Voidspace Manifesto

Author: Michael Foord
Contact: fuzzyman AT voidspace DOT org DOT uk
Date: 2004/10/04
Revision: 2, 2004/10/12
License:This document is in the public domain.
Home Page:New Voidspace Manifesto
The Website:Voidspace

Contents

The Revamp

Well, at least this manifesto is new in October 2004 anyway. Hopefully by the time you read this, some of it has actually happended.

Yes, at last Voidspace is being revamped !! Style has changed and content is changing. A lot of the old 'content of dubious value' will be removed along with some of the badly put together material. It's quite a big change. There's a lot I'd like to keep and these changes actually require learning quite a lot. Over the last three years (but mainly the first two years) I've put a lot of effort into voidspace. In looking over what I'd like to keep I've realised how much material there is - most of which is basically interesting. More importantly though, there's still a lot I'd like to be able to express - which has always been the purpose of voidspace. I haven't even scratched the surface of things I'd like to write about and learn about. As much as anything voidspace ought to be a vehicle of this exploration. This means I don't want to do a shoddy job and I don't want to just wipe out the things that were good about the original voidspace. Unfortunately this means it will take some thought. This document aims to chart the "raison d'etre" of voidspace and the aims and objectives of the revamp. This means what I hope to achieve and how I hope to achieve it. When this is completed, this document will act as a check list to see how much of it was vapourware !!!

Voidspace Aims

These are the basic things I'd like to achieve with having a website. I'm particularly interested in areas where these different topics and aims cross over.

Direct Aims

  • An interesting corner of the web.

  • A showcase for my own essays, opinions and ramblings.

  • A photo gallery for my family and friends.

  • A site that explores the topics of :

    • Spirituality
    • Christian mysticism
    • Christian community
    • Meditation
    • Technology
    • Science
    • Cyberpunk
    • Fiction in general
    • Computers
    • Handheld computers
    • Programming, especially python
    • Anything else I happen to have an interest in.
  • Easy to navigate and use.

  • As attractive as a geek like me is capable of managing.

  • Somewhere to showcase the work of others who may not have a means of expression.

  • To provide something that inspires discussion and innovation.

  • To promote community in the subjects that interest me.

Indirect Aims

  • Have content that doesn't go out of date too quickly.
  • Don't have too many broken links.
  • It must be easy to add new content.
  • It must be easy to remove old content.
  • It must be easy to change the style.
  • It must be easy to change existing content (e.g. index pages when stuff is added or removed).
  • Be more contactable from the website without becoming more vulnerable to spam.
  • Provide me with better statistics about users than I'm currently able to gather.
  • Allow me to experiment with python CGI

Objectives of Revamp

The objectives of the revamp are the things that I'm going to do in order to achieve my aims.

  • Become XHTML compliant - yuck.

  • Address accessibility issues where possible.

  • Use CSS to make it easier to change the layout.

  • Create shtml templates for universal page parts - e.g. sidebar and footer.

  • Find a plaintext markup for easily creating XHTML from text sources.

  • Create page templates for inserting the generated XHTML into.

  • Develop tools to allow automatic content creation.

    • Content from markup
    • Content from directories of images
    • Present directories for download
    • Automatic bookmark updating
    • Generate index pages
    • Where content changes, work out exactly which files (so I can FTP just them)
  • A new and clear directory structure.

  • Get a new host, with a server without security vulnerabilities and python installed

Content Management

Ok, so I'm probably reinventing the wheel.. but I honestly can't cope with using something like dreamweaver or a content management system that won't give me complete control over what I'm doing. For this reason I'd like to use an existing markup system and modify the tools that come with it. I definitely don't want to totally reinvent the wheel - I'm not going to reinvent ResT or anything like, whatever I do must be modular and easily built into the tools that other people are developing.

Plaintext Markup

HTML and XHTML are very wordy markup languages. This means that any content (e.g. an essay or document) with any quantity of markup becomes unreadable. It also means that producing or editing XHTML by hand is a pain. To an extent CSS helps by allowing you to separate content from your layout information. Using templates also helps. Any individual document shouldn't need much more that a title and the actual document portion that will go in the 'main' part of the page. The rest of the page will be pretty much identical from section to section. However, it's possible to reduce the amount of markup needed even further. Automatic tools can be used to insert the document into the templates. They can extract the title and any other information needed from the document itself. In fact if a decent plain text markup format is chosen, it ought to be possible to generate all of the XHTML from what looks almost like ordinary text - a plain text markup.

There is an existing format called ResT that will probably do most of what I want. In fact this document was created using ResT. If you check out the link at the bottom of the page you can see the source. As this is a complete document it uses more markup than a partial document would need to do. ResT has the great advantage that it was developed specifically for python so all the tools for working with it are written with python.

The Toolset

ResT has been developed alongside a suite of tools called Docutils. Docutils can take a ResT source document and output HTML or LaTex or XML or a variety of other formats. The main problem I'll have (as far as I can tell), is that Docutils is designed to generate whole documents. I want to use templates for the framework of the page. From any single document, e.g. an essay, I might want to generate several XHTML pages. I need a toolset that will take the source document and

  • extract meta information like document title
  • generate page bodies
  • insert them into templates to generate the output
  • autogenerate any index pages that might have changed

This means I might need to extend ResT slightly (it has ways to do this) and also modify or build on the existing tool set. The main advantage though is that I can store my whole website in 'source format'. I can make changes by adding source documents, amending a source as plain text or deleting documents. Even things like presenting files for downloads can be done by keeping them in a directory. The tools can then run over the source tree and check for any changes. They can then generate just the files that have changed. As an added bonus I could build in an archiving system (version control) so that changes can be undone.....

The Reality

So how likely is any of this to actually happen. Well for a start it's got to happen. There are a lot of dead links in voidspace now and it's well overdue an overhaul. There is also some content I've been meaning to take down for a long time. I'm also actually working on the substance of this as well as the theory. The main barrier has actually been one of style rather than one of substance. I've now found a CSS based style that should work for voidspace. I've learnt enough to handle the migration to XHTML. I just need to finalise the colour scheme !! Honestly, it's worse than trying to pick wallpaper. The trouble is I'm just so bad at this sort of thing. Luckily with CSS I'm not stuck with any choice I make but can amend it at any stage. So I next need to start migrating content. This will actually be quite hard work and probably be quite boring. I also need to see if I can tinker with Docutils to get it to emit part of a document rather than a whole page. Hmm... It might take a few months in total depending on how much time I get to work on it. I can possibly roll it in a bit at a time as I get sections completed.

Hmm.. I hope this isn't too ambitious. It might be necessary to store a metafile for each document with information for the index pages. In actual fact it looks to me like the old saying 'what you do shapes how you think' is true. This framework looks like a source code control system for programming. Which reminds me, I might build some of my documents using a programmers tool called Leo. It's actually an outlining tool and not just for programming. It allows you to break a document (or program) down into component parts and work on the pieces separately. It can then rebuild the final document for you automatically. I've only had a quick go but it seems like a brilliant idea.

Things should be as simple as possible, but no simpler.

—Albert Einstein

References

Voidspace

Dive into accessibility

Learning the basics of CSS

Migrating to XML

A 2 Column CSS Layout

Leo

Python

ResT

Docutils