Habari 0.2
published
I just finished tagging version 0.2 of Habari, labeled DR for “Developer Review”. It’s been almost four months to the day since the release of version 0.1, and we’ve made a lot of progress on the code.
Major features include:
- The beginnings of a formal user manual, available at /manual. This is currently introductory, end-user documentation. Additional documentation will be added as we go. We feel strongly that there should be no reason for you to visit the Habari Project site just to read the manual for the software you've already downloaded.
- Dynamic content types. Habari creates "entry" and "page" content types during the installation process. Plugins will be able to create new content types, greatly expanding how Habari may be used.
- Event logging: Habari has a robust logging mechanism, and logs important events as they occur. This provides a valuable troubleshooting and auditing tool. Plugins can easily make use of this feature. We don't currently have a way to view log entries from within Habari, but that's high on the priority list.
- A Stack class, useful for building stacks of things for output. For example, this is used to build a collection of CSS or Javascript files to include in the portion of the page's output, allowing for controlled collections of resources to be delivered as needed.
- A FormUI class, for building user interface control elements. This will be invaluable to plugin authors, in order to build plugin control pages without having to write tons of HTML.
- Post slugs can now be edited.
- Pluggable admin menus.
- A robust system to test plugins before activating them, in order to prevent a broken plugin from rendering your site unaccessible.
- Lots and lots more!
Future additions include a comprehensive user permission system, enhanced tag functionality, more default themes (and ThemeEngines!), and more. If you have any suggestions, join the mailing list and let us know! Remember, community is one of the most important aspects of the Habari development process: we very much want to include as many good ideas from as many people as we possibly can! Share your ideas, discuss with us the implementation details, help us weigh the pros and cons, and be part of the development process!
The Habari codebase is sensible, and (mostly) well planned. Class names are meaningful; and classes encapsulate specific functionality. It’s fairly easy to read through the Habari code to find out what is happening. Comments are required for all functions, so you should never have to ask yourself “what is the purpose of this function?”
Habari is still very rough around the edges, so it’s not recommended for every day use unless you’re willing to help identify problems, and test possible fixes. I’ve been running it here on skippy.net since 0.1, and I admit that I would find it hard to switch to anything else. It’s fast, unobtrusive, and functional for my needs. I’m really looking forward to the future of Habari!