jkl is a static site generator written in Go, based on Jekyll
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
andposts
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:
Drone.io Blog: http://blog.drone.io(now moved to Hugo)Drone.io Documentation: http://docs.drone.io(now moved to Hugo)
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: 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
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
Use rsync or s3cmd to sync files to remote server.