Dev Week 2016, London
With Static Site
Generators
@chrischinch
[{
1998
Anyone Remember?
<frameset cols="50%,50%">
  <frame src=“page.html" />
  <frame src=“page2.html" />
</frameset>
[}
Not Alone (Or Just PHP)
❖ Wordpress: 647,518
❖ Joomla: 536,085
❖ Ruby on Rails: 330,059
[|
But… What is a Static Site Generator?
Content + Repeatable Elements → Static Website
Positives
❖ Collaboration & Workflow
❖ Super Fast
❖ Pre-build Irrelevant
❖ Flexible
❖ Minimal Infrastructure
Negatives
❖ Not Dynamic
❖ New
❖ Technical Knowledge
Why These Options?
❖ Stars / Downloads
❖ Community
❖ Simplicity
❖ Activity
❖ 1 per Language
Example Site
❖ Installation
❖ Configuration
❖ Creating Blog posts
❖ Creating Custom Event type
❖ Templates
❖ Extending
Jekyll / Octopress
❖ History
❖ Ruby
❖ Templates: Liquid
❖ jekyllrb.com
gem install jekyll
jekyll new devweekjk
Middleman
❖ History
❖ Ruby
❖ Templates: ERB
❖ middlemanapp.com
gem install middleman
middleman init devweekmi
Hugo
❖ History
❖ Go
❖ Templates: Go Templates
❖ gohugo.io
Pre-built binaries
hugo new site devweekhg
Hexo
❖ History
❖ JavaScript
❖ Templates: EJS / Swig
❖ hexo.io
npm install hexo-cli -g
hexo init <folder>
npm install
Pelican
❖ History
❖ Python
❖ Templates: Jinja2
❖ getpelican.com
pip install pelican markdown
mkdir -p devweekpe
pelican-quickstart
Sculpin
❖ History
❖ PHP
❖ Templates: Twig
❖ sculpin.io
curl -O https://
download.sculpin.io/sculpin.phar
chmod +x sculpin.phar
??
sculpin install
Assemble
❖ History
❖ node.js
❖ Templates: Jade
❖ assemble.io
mkdir devweekas
grunt-init assemble
npm install && bower install
Hakyll
❖ History
❖ Haskell
❖ Templates: Pandoc
❖ jaspervdj.be/hakyll
cabal install hakyll
wait………
hakyll-init devweekhk
Cryogen
❖ History
❖ Clojure
❖ Templates: Selmer
❖ cryogenweb.org
lein new cryogen devweekcr
cd devweekcr
Luapress
❖ History
❖ Lua
❖ Templates: Mustache
❖ luapress.org
luarocks install luapress
luapress init devweeklp
JBake
❖ History
❖ Java
❖ Templates: Freemarker
❖ jbake.org
brew install jbake
mkdir devweekjb
bake -i
Deployment
❖ FTP / SCP
❖ Rsync
❖ GitHub Pages / Hooks
❖ Language Build Systems / CIs
❖ Netlify, Surge etc…
Extending
❖ Jekyll: Generators, Converters, Commands, Tags, Hooks
❖ Middleman: New Features, Helpers, Manipulate Content, Hooks
❖ Hexo: Utilities available
❖ Pelican: Signals (Hooks)
Extending
❖ Sculpin: Symfony bundles
❖ Assemble: Plugins, Helpers
❖ Luapress: Basic docs
What’s Possible?
Thanks!
Chris Ward (aka Chinchilla)
Technical Writer & Developer Relations
gregariousmammal.com
@chrischinch
staticgen.com

Back to the future with static site generators