Presentation slides from the December 2011 RubyAZ meeting. Curtis Miller of Flatterline presented on Jekyll, a static site generator that uses Ruby, Liquid and YAML.
4. How Does It Work?
• Gathers content from _posts, _includes
and other files
• Applies a template
• Converts Markdown and Textile to HTML
• Runs Liquid converters
• Outputs static HTML pages
6. YAML Configuration
• Global configuration options
• Per page / post configuration options
(YAML Front Matter)
• Add your own key / value pairs and use
them as you see fit
7. What’s Built In?
• Pagination
• Custom permalink structure
• Related post extraction
(use with GSL for faster generation)
• Syntax highlighting
• Markdown / Textile conversion
12. No Problem.
module Jekyll
class RenderTimeTag < Liquid::Tag
def render(context)
...
end
end
end
Liquid::Template.register_tag(
‘render_time’,
Jekyll::RenderTimeTag
)
13. Deployment
• Heroku free instance
• GitHub Pages
• Directly to Amazon S3
• Anywhere that can serve static pages!
14. What If I Want Blog
Comments?
Extend with Disqus, Intense Debate or
Facebook comments
15. What If I Need
Something Dynamic?
Extend with Sinatra
16. Typical Workflow
$ cd <my blog dir>
$ foreman start
[Runs whatever you specified - e.g., Jekyll, Compass, Sinatra, etc.]
$ mate _posts/2011-12-20-jekyll-blogging-presentation-at-rubyaz.md
[Add content to file...]
$ git add _posts/2011-12-20-jekyll-blogging-presentation-at-rubyaz.md
$ git commit -m “New post about Ruby AZ presentation”
$ git push && git push heroku
17. Any Gotchas?
• YAML Front Matter means it’s a special file;
No YAML, no special processing
• Pagination only works with HTML files (i.e.,
no Markdown or Textile pagination)
• No generator for initial directory structure
18. A Few Stats
(as of 2011-12-20)
• Over 400 documented sites using Jekyll
• ~50 plugins
• >4,500 watchers
• >700 forks