NanoBlogger is a small weblog engine written in Bash for the command line. It uses common UNIX tools such as cat, grep, and sed to create static HTML content. It's free to use and modify under the GNU General Public License.
pros:- highly configurable and extensible
- intuitive command line interface
- easy drafting, editing, and management of entries
- configurable amount of archiving by category, year, month, day, and entry
- pagination
- permanent and navigational links
- templates and CSS style sheets for full control over layout
- placeholders for easy template manipulation
- support for multiple weblogs
- support for multiple tags (categories)
- support for both relative and absolute links
- support for date manipulation of entries
- Atom syndication (comes with 1.0 format)
- RSS syndication (comes with RSS 1.0 and 2.0 formats)
- plugins for calendar, recent entries, weblog status, etc.
- plugins for text formatting (e.g. line breaks translate to HTML)
- global (nb.conf) and per-weblog (blog.conf) configuration
- intelligent build system that only rebuilds what's necessary
- simple cache system for extra boost in speed
- independent from java-script and server-side scripting (e.g. PHP)
- independent from external database (stores data in flat-files)
- includes user manual
- multilingual support
- multi-platform portability (just add bash and the required commands)
- modular code base
- slow (written in bash)
- no comments (only available as add-on)
- comes with a user manual
- not easily upgradable
September 13, 2008 7:16 PM
NanoBlogger 3.4 RC2
NanoBlogger 3.4 RC2 released! Download the tarball here.
This release brings a notable improvement over the previous command line interface and incorporates many of the recent suggestions found on the mailing list.
Special thanks goes to Denis Bernard and Mark Toppy.
Changes (since 3.4 RC1):
- Notable improvement over previous command line interface.
- New commands for creating and adding articles.
- Three new modernly designed style sheets!
- Improved error handling for Markdown plugin.
- New presets and examples for default configuration.
- Latest French translations.
- Updated documentation.
July 25, 2008 4:34 PM
Interface: Flow of The Syntax
The transformation is complete.
My last post demonstrated some of the major changes to expect in syntax between now and the second release candidate of NanoBlogger 3.4. In many cases these transformations might appear similar to the behavior exhibited in versions 3.3 and before. In other cases they will be radically different, but in any case, I'm confident that most people will view these changes as a welcome improvement over 3.4 RC1.
Just to reiterate, the following changes, while primarily focused on changes from the previous release, are still relevant when compared to earlier versions.
List of Syntax Enhancements & Changes:
synopsis: nb [options] <action> [keyword (variable)]
add action:
The add action has been reworked to accept one of multiple keywords. Keywords include: article, entry, tag and weblog.
example 1: nb add entry
example 2: nb add tag
list action:
The list action, while not much different than 3.3's "--list" option, has been enhanced to accept a second argument as input for a tag's ID number. Eliminating the need to use the "--tag" option to list entries by tag.
example 1: nb list tags
example 2: nb list main
example 3: nb list tag 3
edit action:
The edit action has been enhanced to accept one of multiple keywords. Keywords, "tag" and "entry", should be followed by an ID number. Where the keyword "file" expects a filename. The edit action in 3.4 RC 1 had no keywords.
example 1: nb edit entry 5
example 2: nb --title example2 edit tag 2
example 3: nb edit file somefile.txt
delete action:
The delete action has been enhanced much the same way the edit action has been. The only difference is that it's intentionally missing the keyword, "file". The delete action in 3.4 RC 1 had no keywords.
example 1: nb delete entry 5
example 2: nb delete tag 2
update action:
The update action, while no different than 3.3's "--update" option, no longer requires the "query" action for manipulation like it did in 3.4 RC1.
example: nb update main
import action:
The import action replaces the so called, "file" action and accepts one of multiple keywords followed by a preexisting file. Keywords include: article and entry.
example: nb import entry somefile.txt
Additional notes:
-
The previous actions, formerly known as "query" and "tag" have been regulated to their equivalent long options, "--query" and "--tag". The "--tag" long option must be used when you need to manipulate entries belonging to a specific tag. The "--query" long option is useful for narrowing the scope of entries to be managed.
-
Every action has always included a default query, In 3.3 this was changed to return a limited amount of results. As pointed out on the mailing list, this could be point of confusion, so it has been changed back to pre-3.3 behavior of not defaulting to a limited query. The default query can be changed through the configuration or overridden from the command line.
-
Short options are also provided for many of the actions and long options.
June 28, 2008 5:51 PM
Interface: Visual Cues To The Rescue
Having received next to zero feedback from the first release candidate of 3.4, I've taken the liberty as lead developer and decided to fix what I perceive to be, vague and confusing "add", "edit" and "delete" commands.
Somewhere in the transition from a dash-based only command line interface to a more flexible action-based one, some clarity has been lost. Having narrowed it down to the "add", "edit" and "delete" commands, I found the obvious solution was to clarify the subject of the action. Basically, employing strong visual cues which help provide the necessary distinction.
I think the results speak for themselves:
Now instead of:
nb edit n
or more confusing vagaries such as:
nb tag n delete n
We have nicely clarified commands, such as:
nb edit entry n
nice separation between what's a tag and what's an entry:
nb tag n delete entry n
in some cases we see an elimination of redundancy:
nb delete tag n
where before it was:
nb tag n delete tag
and in other cases we see an elimination of complexity:
nb --title example add tag
where before it was:
nb --title example add tag new
For the translators this will only require minor changes to the syntax of the effected commands.
I'd like to get the final release out before September or sooner, but also believe such a change warrants a second release candidate, so expect a second one soon.
June 14, 2008 12:11 AM
NanoBlogger 3.4 RC1
NanoBlogger 3.4 RC1 released! Download the tarball here.
This release sees a significant overhaul in the code base, user contributed patches, improved language support, and lots of bug fixes, including many from the SF.net project page.
Thanks goes to everyone who encouraged me and in some cases even contributed their own time and efforts to make this release possible.
Changes (since 3.3):
- New action based command line interface.
- Updated documentation for new command line interface.
- Improved support for creating and storing various metadata variables.
- Updated default configuration with sensible defaults.
- Improves Articles plugin support for multiple directories.
- Enhanced support and important fixes for Atom and RSS syndication, including support for enclosures and better compliance with standards.
- Improved plugins facility allows disabling or replacing specific global plugins per weblog and ability to load plugins individually instead of a group.
- Configurable levels of archiving (e.g. disable month and day archives).
- Much improved tracking and updating of relative weblog archives.
- Reverts default layout provided by CSS and templates to simple and clean design and removes several previously included CSS styles.
- New functionality adds more reliable management of flat-file databases.
- Usable Bash Completion examples.
- Several other bug fixes and minor improvements.
May 23, 2008 8:24 PM
Announcing 3.4 RC-1 Feature Freeze
I'm imposing a feature freeze on NanoBlogger, effective immediately. Mainly for the benefit of the translators and as a reminder to myself to stop tweaking and tinkering the code. The freeze will remain in effect until June 13.
As is often the case, once I start focusing on fixing one bug or one feature it often leads to several other seemingly unrelated changes. For example, I'll notice some neglected code or documentation and feel compelled to tweak and tinker even more. And that's indeed what has happened since. So, translators will especially want to take advantage of this code freeze to synchronize their translations with the changes I made up until this freeze. I should note, if it wasn't for the advice of one Denis Bernard, I probably would've been satisfied with just making a release candidate or two. Also, I should note that, the Spanish translation is still in dire need of an update.
Usted hablo Espanol? 
We'll see how 3.4 RC-1 goes to determine whether the need exists for another future release candidate before making the final release. And if all goes well, hopefully NanoBlogger 3.4 RC-1 will be released around mid-June.
