blogc(1) is a blog compiler. It converts source files and templates into blog/website resources.

Read latest news

blogc is simple...

blogc was designed with simplicity in mind. If the implementation of some feature requires a very complex change, it is discarded.

blogc is powerful...

Based on the flexibility of its template engine, even considering that it just implements the basic features of a template engine, blogc can be used to generate almost any blog/website resource, including atom feeds and sitemaps.

blogc is portable...

blogc is often tested on Linux and FreeBSD, but the code should work on any POSIX-compliant operating system. Patches for portability are always welcome and have high priority. The optional helper tools, like blogc-git-receiver(1) and blogc-runserver(1) are only tested on Linux.

blogc is compatible with make...

blogs was designed to be used with make. It is stateless and idempotent (no global state is shared between process calls, and each call with the same arguments will always result in the same output), and works pretty much like a "real" source code compiler.

blogc is self-contained...

blogc just depends on a libc. The test suite (yes, blogc comes with a somewhat complete test suite!) depends on cmocka and a few other common tools found on Linux machines, but users aren't required to run it.

blogc is designed for developers...

Due to its simplicity and similarity to a "real" source code compiler, blogc is meant to be used by software developers, that are used to work with make and similar development tools.

Frequently Asked Questions

Is this a blog engine?

No, it is just a blog compiler. It will only build one file at once, and does not know anything about the other files that needs to be built to get a full blog working. This is a job for a build tool like make.

What is its markup language?

blogc comes with its own markup language, see blogc-source(7). The language is quite similar to John Gruber's Markdown, but differs in some aspects.

But why not just support Markdown?

While the blogc markup language is quite simple, we have plans to support advanced features that are not part of Markdown, like something similar to reStructuredText directives. Also, this project is an experiment, and one of the targets of the experiment is the markup language.

How can I get started with blogc?

You should install it from github or from a stable release. It is a standard autotools project, that can be built with ./configure && make && make install.

There's also a Git repository with an example blog:

Feel free to clone it, remove .git and start your brand new blog.

The example repository uses GNU Make. You should be able to write a Makefile that only uses POSIX features, and get it working with any make implementation, but our example uses lots of GNU features. This should be fixed in future.

What the name "blogc" means?

"blogc" stands for "blog compiler". The name has nothing to do with the programming language used to implement it. ;-)

I don't like make, what can I do about it?

You are free to use any other build tool you like. You can even use something like grunt, if you really want. blogc is a command-line application, like any other. Anything that can call command-line tools should work just fine.

Our example repository uses GNU Make, though.