cmd/gojekyll | ||
example | ||
helpers | ||
liquid | ||
scripts | ||
.gitignore | ||
.travis.yml | ||
build.go | ||
collection.go | ||
dynamic_page.go | ||
layout.go | ||
LICENSE | ||
markdown.go | ||
page.go | ||
permalinks_test.go | ||
permalinks.go | ||
README.md | ||
sass.go | ||
server.go | ||
site_config.go | ||
site_test.go | ||
site.go | ||
variable_map_test.go | ||
variable_map.go |
Go Jekyll
When I grow up, I want to be a Go implementation of Jekyll.
Status
This project is missing more functionality than it implements. It may accidentally work on tiny or simple sites.
It's currently ~50x faster than Jekyll using an embedded Liquid engine (that isn't very completely); and about 5x faster using an un-optimized connection to the harttle/shopify-liquid JavaScript library (documentation TBD) to render Liquid templates.
- Content
- Front Matter
- Posts
- Categories
- Tags
- Drafts
- Future
- Related
- Creating pages
- Static Files
- Variables
- Collections -- rendered, but not available as variables
- Data Files
- Assets
- Coffeescript
- Sass/SCSS
- Customization
- Templates
- link tag
- include tag
- Remaining Jekyll Liquid tags
- Jekyll Liquid filters
- Includes
- Permalinks
- Pagination
- Themes
- Layouts
- Templates
- Server
- Directory watch
- Live reload
- Other
- LINUX, macOS
- Windows -- not tested
Install
go install osteele/gojekyll/cmd/gojekyll
Sometimes this package benefits from my unmerged improvements to the acstech/liquid library. If you want to use my fork instead:
cd $(go env GOPATH)/src/github.com/acstech/liquid
git remote add osteele https://github.com/osteele/liquid.git
git pull -f osteele
(See articles by Shlomi Noach and Francesc Campoy for how this works and why it is necessary.)
Run
gojekyll build # builds into ./_site
gojekyll serve # serves from memory, w/ live reload
gojekyll render index.md # render a file to stdout
gojekyll render / # render a URL to stdout
gojekyll data / # print a file or URL's variables
gojekyll --remote-liquid # use a local Liquid engine server
gojekyll help
For development, ./scripts/gojekyll
uses go run
each time it's invoked.
Credits
For rendering Liquid templates: the acstech/liquid fork of karlseguin/liquid; or, harttle/shopify-liquid via JSON-RPC.
The gopher image in the test directory is from Wikimedia Commons. It is used under the Creative Commons Attribution-Share Alike 3.0 Unported license.
Related
Hugo isn't Jekyll-compatible (-), but actually works (+++).
Jekyll, of course.
License
MIT
Alternate Naming Possibilities
- "Gekyll". (Hard or soft "g"? See gif.)
- "Gekko"