a blog/website builder in Go

Blogo processes Markdown files in a directory, and makes HTML files.


You need Go installed [properly][]. Then run

go get


Then just run blogo in your blogo directory.


I wrote this because I wanted to learn to program in Go, and DIY blog engines are how one learns a language these days.

Documentation in blogo.go, so you can view it with godoc. For usage instructions, try blogo -h or blogo help.


The code is available under the same license as Go.


  • Put posts in their own directories (with an index.html), but make this behaviour selectable.
Expand ▾ Collapse ▴



    Command-line executable for blogo

    Works in the directory given on the command-line, or the current working directory. Looks for .json files, and for each one found, builds a Post. Post values which are absent from a post's .json file will be filled in using values from index.json, the blog's configuration. Finally, index.json will be rendered using the blog, and pages for every month creating posts will be created, and a page for every tag.

    A post's body (and summary) is written in Markdown. By default, this is obtained by reading a file with the same slug as the .json config, with a .md extension. This is also a mustache template, through for which the post is the view.

    The template used for posts is _post.html, for tags: _tag.html, and for months, _month.html. All posts and pages are sent through _layout.html. These are all Mustache templates.

    By default, generated HTML files will be placed in the same directory. You can override this with the "output" value in the index.json.

    Source Files