If you missed it, here is part 1.
Enter scaffolding tools
What is a scaffolding tool?
Okay, Jekyll is a static page generator
and gives you the ability to transform your markdown
posts into html
pages, but from a reusability point of view, it is sort of limited. Are you going to use jekyll
for all your apps? Maybe, maybe not.
That’s why you may want to look for a scaffolding tool. Yes, you know; those metal or bamboo structures around buildings when they are getting built. Doesn’t matter which kind of building / app you want to build, you can use a scaffold.
Okay, where can I find one?
Yeoman is one of them. Want to build a blog with Jekyll? Yeoman’s got your back. Want to build an Angular app? Yeoman’s got your back. It has more than a thousand generators to help you build the app or website you want to build. Oh, and a generator is just a bunch of recipes, they have generators / recipes for all kinds of projects.
Enter Yeoman.
Yeoman is comprised of a set of CLI tools that are based on Node.js – so yes, if you haven’t installed it yet, you may need to. The package can be installed with npm
. The [getting started] will walk you through the steps.
Install the tools:
npm install --global yo
Install a generator (e.g. jekyll):
npm install --global generator-jekyllrb
Get started, please note our little friend will ask you some questions so please pay attention.
$ yo jekyllrb
_-----_
| |
|--(o)--| .--------------------------.
`---------´ | Welcome to Yeoman, |
( _´U`_ ) | ladies and gentlemen! |
/___A___\ '__________________________'
| ~ |
__'.___.'__
´ ` |° ´ Y `
This generator will scaffold and wire a Jekyll site. Yo, Jekyllrb!
Tell us a little about yourself. ☛
[?] Name: Damien Nozay
[?] Email: damien@example.com
... more prompts ...
And when it’s done, you can see what it has generated for you:
$ git status -uall
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
.bowerrc
.csslintrc
.editorconfig
.gitattributes
.gitignore
.jshintrc
Gemfile
Gemfile.lock
Gruntfile.js
_config.build.yml
_config.yml
app/_layouts/default.html
app/_layouts/post.html
app/_posts/2014-09-22-welcome-to-jekyll.md
app/_posts/2014-09-22-yo-jekyllrb.md
app/_scss/main.scss
app/_scss/readme.md
app/_scss/syntax.scss
app/index.html
app/js/main.23ed95cc.js
bower.json
package.json
nothing added to commit but untracked files present (use "git add" to track)
If we were using jekyll directly rather than yo
, we would be starting the edit-compile-serve / edit-preview loop with jekyll serve
; with the inputs I gave to yo
, I chose to use grunt
which takes care of that.
grunt serve
And here is our shiny new blog: