1
0
mirror of https://github.com/danog/gojekyll.git synced 2025-01-23 05:11:31 +01:00
2017-06-28 14:42:04 -04:00
2017-06-24 14:00:19 -04:00
2017-06-23 10:41:17 -04:00
2017-06-27 22:55:39 -04:00
2017-06-28 14:42:04 -04:00
2017-06-24 14:00:19 -04:00
2017-06-22 17:37:32 -04:00
2017-06-24 14:00:19 -04:00
2017-06-24 14:00:19 -04:00
2017-06-24 14:00:19 -04:00
2017-06-22 17:37:32 -04:00
2017-06-22 15:53:34 -04:00
2017-06-11 19:18:10 -04:00
2017-06-22 17:37:32 -04:00
2017-06-28 14:42:04 -04:00

Go Jekyll

When I grow up, I want to be a Go implementation of Jekyll.

Status

Build Status Go Report Card

See the significant missing functionality. This currently works on some simple sites that don't use drafts, templates, future posts, or various other features listed below.

  • 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
      • Jekyll Liquid tags (partial)
      • Jekyll Liquid filters (partial)
      • markdown=1
    • Includes
      • include_relative
      • parameters
        • variable parameters
      • variables {% include {{ expr }} %}
    • Permalinks
    • Pagination
    • Themes
    • Layouts
  • 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.

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"
Description
No description provided
Readme 1.1 MiB
Languages
Go 95.9%
CSS 2%
HTML 1%
Makefile 0.6%
Shell 0.3%
Other 0.2%