Frontispiece

A simple, flexible blog publishing engine.

Frontispiece is on hiatus

Just a quick note. My brain can’t spend too long obsessing over the same thing. For a while that thing was Frontispiece, but I’m taking a month or two off to do some other fun stuff. I’ll return to Frontispiece later this year, though!

Coming Somewhat Soon: Nought Point Three

Plugins! And cleaner code.

0.3a is underway now, and there are quite a lot of new things planned. For instance, Mr. Grant Hutchinson is working on Tersus, the default theme of Frontispiece from 0.3a onwards. Mr. Thomas Brand is designing us a logo. Excellently talented men, both. I trust their talents, so they are working without my input on the whole.

The big new thing in the code, though, will be plugins. Plugins are the Third Way to extend Frontispiece, after Kinds and Markups. But every content management system has a different definition of a plugin—how do Frontispiece’s work?

Plugins can do two things. The first is inject code into the start and end of every page load. This could be useful for statistics tracking, benchmarking, or something. (the code run here is blocked from making any output.)

The second, and more exciting, is that plugins can become handlers for certain URL paths. Plugins can define whole new dynamic sections of your website. Plugins can request to handle URLs by regular expression match, or, if that flexibility is beyond the requirements of a plugin, a match by simple string specification.

Plugins cannot override existing core blog functionality. For instance, a plugin could not become a replacement handler for your post URL’s—and if you make a Page whose URL could be occupied by plugin content, your Page’s content takes precedence.

Under the Hood

Frontispiece plugins are made possible by the Great De-monolith-isation. In 0.1a and to a slightly lesser extent in 0.2a, all the blog’s core functionality was handled by a single file, that being blog.php. In 0.2a, some of those functions were grouped together as ‘internal post state filters’ and split out of blog.php into blog/postfilters.php. In 0.3a, the real de-monolith-isation work begins, moving all of the data grabbing functions out of the $blog->url_parses function and turning that into a function whose only purpose is what you’d guess: to parse and figure out the meaning of a URL.

This is a pretty big job.

Frontispiece 0.3a Release Schedule

Very early 2011. Probably in the first couple of weeks of January.

That’s longer than 0.2a took. But 0.2a was originally going to feature the de-monolith-ised data grabbing functions. In the end, there was too much other stuff changed and added, so I released the monolithic blog.php. 0.3a will feature the refactored URL parser and data handler. It’s going to be a good release.

Incidentally

I’m aware that most web hosts don’t provide CouchDB. I’ll tell you about my solution to that problem shortly after Frontispiece goes beta with 0.5b.

Frontispiece 0.2a

Many changes. New template system, protected databases, bug fixes…

Frontispiece 0.2a is out.

Peruse the release notes here.

The goal with 0.2a was to fix all of the bugs mentioned in the README of 0.1a and 0.1.1a. So I fixed them all, one by one. You can specify page hierarchy in the admin. There’s a more secure login system. There’s a template system—it’s called Twig, and it was pulled out of the old Chyrp blog system. A new installer that uses CouchDB replication from a master database ‘in the cloud.’ Et cetera. (you still have to run Frontispiece from the top-level of a domain. I don’t think I’ll ever fix this.)

0.2a marks a watershed release in reliability, I think. In spite of the ‘alpha’ label, it’s probably safe to give this to your grandma.

For 0.3a, we’ll hopefully have a new default design courtesy of the ineffably talented Grant Hutchinson. I also want to add a whole load of cool new stuff, so stay tuned.

Progress & Problems

Issue tracking and 0.2a progress

0.2a, the next release of Frontispiece, is well underway. You can keep an eye on my progress over on GitHub or just get the major news here. You can also look at the installation I’m using in the testing and build process. The goal is to fix a lot of bugs—ideally, all of the ones mentioned in the README.md file of 0.1a and 0.1.1a.

There’s now a Frontispiece issue tracker over on the Lighthouse. If you’re using Frontispiece and you encounter an issue, please report it there.

I’m still looking for alpha testers, and (especially) developers. If you’re going to start using Frontispiece, I’d advise you to wait for 0.2a, which should be out around the beginning of December.

Frontispiece 0.1.1a

Some bugs fixed.

Frontispiece 0.1.1a is out. It fixes some pretty insipid bugs which were in because of the stupidity of yours truly. However, work is now underway on a test suite which will hopefully prevent such stupidities in the future.

Frontispiece 0.1a

The first ever release of Frontispiece! So proud.

The Frontispiece development team (currently consisting of yours truly only) is pleased to announce the release of version 0.1a. It’s the first release, yay! Download it and look at the release notes bug list.

I’m looking for vaguely-talented (or even highly-talented) PHP developers to help work on Frontispiece. If you’re interested, send me a message electronically and I’ll let you know the deal.

Acclaim for Frontispiece 0.1a

Don’t give this to your grandma.

Dave Lawrence.