a static site generator written in Go based on Jekyll
Pull request Compare This branch is 21 commits behind drone:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE.txt
README.md
config.go
main.go
page.go
post.go
site.go
template.go
util.go
util_test.go

README.md

jkl is a static site generator written in Go, based on Jekyll

Build Status

Notable similarities between jkl and Jekyll:

  • Directory structure
  • Use of YAML front matter in Pages and Posts
  • Availability of site, content, page and posts variables in templates
  • Copies all static files into destination directory

Notable differences between jkl and Jekyll:

  • Uses Go templates
  • Only supports YAML front matter in markup files
  • No plugin support

Additional features:

  • Deploy to S3

Sites built with jkl:


Installation

In order to compile with go build you will first need to download the following dependencies:

go get github.com/russross/blackfriday
go get launchpad.net/goyaml
go get launchpad.net/goamz/aws
go get launchpad.net/goamz/s3
go get github.com/dersebi/golang_exp/exp/inotify

Once you have compiled jkl you can install with the following command:

sudo install -t /usr/local/bin jkl

If you are running x64 linux you can download and install the pre-compiled binary:

wget https://github.com/downloads/bradrydzewski/jkl/jkl
sudo install -t /usr/local/bin jkl

Usage

Usage: jkl [OPTION]... [SOURCE]

      --auto           re-generates the site when files are modified
      --base-url       serve website from a given base URL
      --source         changes the dir where Jekyll will look to transform files
      --destination    changes the dir where Jekyll will write files to
      --server         starts a server that will host your _site directory
      --server-port    changes the port that the Jekyll server will run on
      --s3             copies the _site directory to s3
  -v, --verbose        runs Jekyll with verbose output
  -h, --help           display this help and exit

Examples:
  jkl                  generates site from current working dir
  jkl --server         generates site and serves at localhost:4000
  jkl /path/to/site    generates site from source dir /path/to/site

Auto Generation

If you are running the website in server mode, with the --server flag, you can also instruct jkl to auto-recompile you website by adding the --auto flag.

NOTE: this feature is only available on Linux

Deployment

In order to deploy to S3 you must include a _jekyll_s3.yml file in your site's root directory that specifies your AWS key, secret and bucket:

s3_id: YOUR_AWS_S3_ACCESS_KEY_ID
s3_secret: YOUR_AWS_S3_SECRET_ACCESS_KEY
s3_bucket: your.blog.bucket.com

Run jkl --s3

Documentation

See the official Jekyll wiki ... just remember that you are using Go templates instead of Liquid templates.