The Strange Case of Dr. Jekyll and Mr. Hyde tells the story of a lawyer investigating the connection of two persons, Dr. Henry Jekyll and Mr. Edward Hyde. Chief among the novel's supporting cast is a man by the name of Mr. Poole, Dr. Jekyll's loyal butler.
Poole is the butler for Jekyll, the static site generator. It's designed and developed by @mdo to provide a clear and concise foundational setup for any Jekyll site. It does so by furnishing a full vanilla Jekyll install with example templates, pages, posts, and styles.
See Poole in action with the demo site.
There are currently two official themes built on Poole:
Individual theme feedback and bug reports should be submitted to the theme's individual repository.
Poole is built on Jekyll and uses its built-in SCSS compiler to generate our CSS. Before getting started, you'll need to install the Jekyll gem:
$ gem install jekyll
Windows users: Windows users have a bit more work to do, but luckily @juthilo has your back with his Run Jekyll on Windows guide.
Need syntax highlighting? Poole includes support for Pygments or Rouge, so install your gem of choice to make use of the built-in styling. Read more about this in the Jekyll docs.
To help anyone with any level of familiarity with Jekyll quickly get started, Poole includes everything you need for a basic Jekyll site. To that end, just download Poole and start up Jekyll.
Folks wishing to use Jekyll's templates and styles can do so with a little bit of manual labor. Download Poole and then copy what you need (likely _layouts/
, *.html
files, atom.xml
for RSS, and public/
for CSS, JS, etc.).
To see your Jekyll site with Poole applied, start a Jekyll server. In Terminal, from /poole
(or whatever your Jekyll site's root directory is named):
$ jekyll serve
Open http://localhost:4000 in your browser, and voilà.
If you host your code on GitHub, you can use GitHub Pages to host your project.
- Fork this repo and switch to the
gh-pages
branch. - If you're using a custom domain name, modify the
CNAME
file to point to your new domain. - If you're not using a custom domain name, modify the
baseurl
in_config.yml
to point to your GitHub Pages URL. Example: for a repo atgithub.com/username/poole
, usehttp://username.github.io/poole/
. Be sure to include the trailing slash. - Done! Head to your GitHub Pages URL or custom domain.
No matter your production or hosting setup, be sure to verify the baseurl
option file and CNAME
settings. Not applying this correctly can mean broken styles on your site.
Poole includes some customizable options, typically applied via classes on the <body>
element.
Poole is built almost entirely with rem
s (instead of pixels). rem
s are like em
s, but instead of building on the immediate parent's font-size
, they build on the root element, <html>
.
By default, we use the following:
html {
font-size: 16px;
line-height: 1.5;
}
@media (min-width: 38em) {
html {
font-size: 20px;
}
}
To easily scale your site's typography and components, simply customize the base font-size
s here.
Jekyll encourage the use of bundler
to manage themes and plugins. Themes can be packaged as Ruby gems since Jekyll 3.3. If you don't intend to modify the theme a lot, this is a nice way of focusing on your content and benefits from theme updates.
- Create a folder that will be your Jekyll source directory, e.g
blog
. - Create a
Gemfile
in your source directory to list all theme dependencies, it should looks like this:
# frozen_string_literal: true
source "https://rubygems.org"
gem "jekyll", "~> 3.7.0"
gem "jekyll-theme-poole", "~> 2.0"
- Run
bundle install
to install all theme dependencies. - Copy
_config.yml
,index.html
,404.html
(andabout.md
) from this repository's example files to your source directory. - Run
bundle exec jekyll serve --livereload
to preview your website locally.
If you list the files in your source directory, don't be surprised if you only see:
├── 404.html # default 404 page template
├── Gemfile # bundler configuration
├── Gemfile.lock # bundler version lock
├── _config.yml # jekyll configuration
├── _posts # your posts are here
├── _site # default destination build directory
├── about.md # default example page
└── index.html # list all the posts on the homepage
💡 When you use gem-based themes, the themes files don't appear in your source directory, they're packaged within the gem.
If you wonder where the original theme files are, bundler
allows you to show a gem content:
tree $(bundle show jekyll-theme-poole)
├── LICENSE.md
├── README.md
├── _includes
│ └── head.html
├── _layouts
│ ├── default.html
│ ├── home.html
│ ├── page.html
│ └── post.html
├── _sass
│ ├── _base.scss
│ ├── _code.scss
│ ├── _layout.scss
│ ├── _masthead.scss
│ ├── _message.scss
│ ├── _pagination.scss
│ ├── _posts.scss
│ ├── _syntax.scss
│ ├── _type.scss
│ └── _variables.scss
└── assets
├── apple-touch-icon-precomposed.png
├── favicon.ico
└── styles.scss
If you want to customize the theme, you'll have to copy the files you need to modify in your source directory. Report to jekyll's documentation to learn how to override a theme.
Poole has two branches, but only one is used for active development.
master
for development. All pull requests should be to submitted againstmaster
.gh-pages
for our hosted site, which includes our analytics tracking code. Please avoid using this branch.
CSS is handled via Jeykll's built-in Sass compiler. Source Sass files are located in _sass/
, included into styles.scss
, and compile to styles.css
.
Mark Otto
Open sourced under the MIT license.
<3