A simple static site generator written in Go inspired by Jekyll
Go
Pull request Compare This branch is 7 commits ahead of 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
page_test.go
post.go
site.go
template.go
template_test.go
util.go
util_test.go

README.md

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

Build Status

This is a fork of jkl as the original is no longer maintained.

Notable changes in this fork:

  • No support for AWS S3 syncing (do one thing and one thing well) use s3cmd or some other tool instead.
  • Support for pretty urls
  • Short descriptions with the <!--more-> tag
  • Fix: display of dates
  • Added urlencode template filter

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

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 github.com/howeyc/fsnotify

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:

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
  -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 and OSX

Deployment

Use rsync or s3cmd to sync files to remote server.