cmd/gojekyll | ||
collections | ||
config | ||
constants | ||
example | ||
helpers | ||
liquid | ||
pages | ||
pipelines | ||
scripts | ||
server | ||
sites | ||
templates | ||
.gitignore | ||
.gometalinter.json | ||
.travis.yml | ||
LICENSE | ||
Makefile | ||
README.md |
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.
- Content
- Front Matter
- Posts
- Categories
- Tags
- Drafts
- Future
- Related
- Static Files
- Variables
- Collections
- Data Files
- CSV
- JSON
- YAML
- Assets
- Coffeescript
- Sass/SCSS
- Sass caching
- Customization
- Templates
link
tag- Remaining Jekyll Liquid tags
- Jekyll Liquid filters
- Includes
- parameters
include_relative
- Permalinks
- Pagination
- Themes
- Layouts
- Templates
- Server
- Directory watch
- Live reload
- Windows -- not tested
Intentional differences from Jekyll:
serve
doesn't write to the file system- No
.sass-cache
. (When caching is added, it will go to a temporary directory.) - Server live reload is always on.
Install
go get -u osteele/gojekyll/cmd/gojekyll
Usage
gojekyll -s path/to/site build # builds into ./_site
gojekyll -s path/to/site serve # serves from memory, w/ live reload
gojekyll help
gojekyll help build
Contributing
Install package dependencies and development tools:
make setup
Testing
make test
make lint
gojekyll -s path/to/site render index.md # render a file to stdout
gojekyll -s path/to/site render / # render a URL to stdout
gojekyll -s path/to/site variables / # print a file or URL's variables
./scripts/coverage && go tool cover -html=coverage.out
./scripts/gojekyll
is an alternative to the gojekyll
executable, that uses go run
each time it's invoked.
Profiling
gojekyll -s path/to/site profile
go tool pprof gojekyll gojekyll.prof
Credits
Jascha Ephraim's jaschaephraim/lrserver Live Reload server.
https://github.com/pkg/browser to open the URL in a browser.
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.
This project is a clean-room implementation of Jekyll, based solely on Jekyll's documentation and testing it against a few sites. Hopefully this can pay off in contributing towards Jekyll's documentation.
License
MIT
Alternate Naming Possibilities
- "Gekyll". (Hard or soft "g"? See gif.)
- "Gekko"