blogc(1) is a blog compiler. It converts source
files and templates into blog/website resources.
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-runserver(1) are only tested on Linux.
blogc is compatible with
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
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
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?
There's also a Git repository with an example blog: https://github.com/blogc/blogc-example
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
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
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.