Editing

Blogspace: About: getting stuff into Blogspace

While initially, Blogspace will only accept HTML entered through a web browser, it is easily extensible to allow many formats of data through many different means. Once the information is in Blogspace, it can then be converted and reformatted as needed. This document will be amended as Blogspace accepts more formats of data.

Conventions

In this document, URLs are meant to be relative to the Blogspace root. That is, if your Blogspace is located at http://blogspace.com/about/ then a URL like /foobar would become http://blogspace.com/about/foobar.

What's an Entry?

An entry is the basic unit of content in Blogspace and contains one or more revisions. An entry is identified by an address. An entry currently only has one attribute:

Address
A URL fragment that identifies where this entry will be located in your Blogspace. One example is editingInBlogspace. Slashes, spaces, question marks, and other characters reserved for special use or not allowed in URLs are not allowed. If the address is not null, it must be unique.

If the address is not null, then visiting /foo should display the latest version of the entry whose address is foo.

Entries are also connected to revisions through a many-to-many mapping. This connection has one attribute:

Version
An integer describing the version of the revision in relationship to the Blogspace. Generally this increases by one as more revisions are added. The largest number is considered the latest version.

Visiting /foo/3 should display version 3 of foo.

What's a Revision?

A revision is a actual piece of content in the Blogspace. A revision must belong to exactly one entry and that entry must remain the same at all times. All revisions must contain the following attributes:

Title
A short plain text string succinctly describing what an entry is about. Examples are Editing in Blogspace.
Authors
The Blogspace users who wrote or contributed to the entry.
Last Modified
The time at which the revision was last modified.

In addition, each revision will be of a certain type. Types are fully extensible and each type brings its own fields and formats. Eventually, Blogspace users will be able to build their own types to contain whatever data they need their Blogspace to store. To start we only have one type:

Generic Content

Content
The actual content of the revision.
Format
The format of the content, specified as a mime type. For example, text/plain for text and text/html for HTML.

Acknowledgements

Many thanks to Karl Goldstein and the others on the content management team at ArsDigita for their work on the ACS Content Repository, on which Blogspace's entry design is heavily based.

aaron@blogspace.com

An Aaron Swartz Project