Clog
About
They say to use the right tool for the job, and from my experience, developing and maintaining websites is a whole lot of jobs rolled into one. There's planning, designing, updating, managing, link fixing, and just general web mastery. As such, the only right tool is multiple tools. Clog is the schizophrenic combination that's just right.
The Clog system is composed of three technologies: XHTML, Closg (a dialect of lisp), and php. XHTML makes maintainance easy for the web master, Closg makes configuration easy for the web developer, and php makes deployment easy for the web host. The data files have purposefully been kept simple to parse and manipulate mechanically using outside packages, or by a human practicing a minimal ammount of caution.
Clog takes from CSS/XHTML the idea of separating content from layout and runs with it. The goal of this system is to further distinguish data from structure from navigation from behavior. This allows one to develope their site based upon its logical structure as opposed to its physical, file-oriented, structure.
While Clog may appear to be Just Another Templating System like Smarty or FastTemplate, in truth it's much more. Instead of allowing relatively simple variable interpolation into templates, Clog's data interface is aimed at high level functionality. A simple phrase like ${entries} will insert your entire text of recent blog entries, while ${entries recent} spews forth a list of links to the permalinked pages of individual entries. All the complicated code to make this happen is hidden away in the Closg core. Being a lisp dialect, this core is powerful and easy to modify, so you can customize behavior however you want, if you need that level of control.
Clog is also not a content management system. It is much smaller and simpler than that, with the intended goal of being easy to understand as a system. By having a tool that anyone with enough technical knowledge and ambition can understand, it is easier to picture how it's working inside, improving flexibility and ease of manipulation. Clog is also supposed to be easy to separate from it's medium. It should be just as easy to build a static site to be uploaded, as it is to build a partially dynamic site, as it is to build a completely dynamic, database backed, site.
Documentation
Still in the works.
What Doesn't Work Yet
- Cannot comment on entries.
- No database support yet.
- The dependency checker is currently a little too conservative (not that there's anything wrong with being a conservative), so it might not rebuild everything that needs to get rebuilt. If you encounter problems with this, delete the snapshot.dat and depends.dat files in the system/build directory.
- Error checking is not too fancy. It probably isn't too hard to mess up some weird value somewhere and get a build to fail without any useful error message whatsoever.
Questions That Nobody Has Asked Yet
What Do I Need to Run Clog?
All you need is a php5 processor.
Where Does the Name Come From?
It's an acronym, standing for "Content Layout Object Generator".
No, Really, Where Does the Name Come From?
It's meant to poke fun at "Common Lisp".
Come On, Seriously, Where Does the Name Come From?
I got the idea from a famous internet celebrity, and that's the truth.
Can I Use a Database as the Back End?
Not yet. I'm not sure if one will be added in the near future.
How Do I pronounce Closg?
You might as well spell it out.
Downloads
Full sourceThe clog system itself
With source to my site
Put clog.php/system along-side template.html
Run with [php -q clog.php site]