Skip to content
The bash static site generator with real template engine
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
layout add twitter + github integration Jun 26, 2015
post clean up Jun 20, 2015
public tweak base.css Jul 13, 2015
.gitignore add sample post Jun 19, 2015
LICENSE.txt add license Jun 22, 2015 big redesign Jun 18, 2015 Update Jul 8, 2015
baker add twitter + github integration Jun 26, 2015

baker, the real static blog generator in bash


  • Template
  • Markdown
  • Draft
  • Video/Audio (ffmpeg)
  • Tag
  • RSS

Start your first post

  1. Give it a title: ./baker post I love pizza so much! This command will create a markdown file that has the slug i-love-pizza-so-much in the post directory. If the $EDITOR environment variable is set, it will open up the post markdown file with the editor.

  2. Change draft from true to false to publish the post.

  3. Bake all posts: ./baker bake

Template redesigned

The new template engine is much faster (and smaller) than the previous version. It now uses bash's scope as its context.


Variable identifier should only use [A-Za-z_]. Notice that any number is not allowed in a variable name.

{{ var }}

{{ content }} # embed child layout output


Notice that spaces are not allowed between ! and var.

@if !var


@each iterates an array. This is why a number is not allowed in a variable name.

For example,

posts = [
		"title": "first",
		"content": "example1",
		"title": "second",
		"content": "example2",

is encoded as:


@each posts
	{{ title }} - {{ content }}


@include includes a partial from $LAYOUT_DIR/$ Notice that .md is already added.

@include filename


@cmd gets stdout from embedded bash script.


for i in {1..10}; do
	echo "$i"



It currently uses the implementation from Daring Fireball.


This software is made by taylorchu, and is released under GPL2.

You can’t perform that action at this time.