[DEPRECATED]
GitHub Pages Starter Kit
An opinionated starter kit for GitHub Pages projects. For building lightweight static sites customized with a modern build beyond what Jekyll offers by default.
Examples
Features
- Blazing fast
- Pre-generated
- Passes Google PageSpeed user experience and speed tests on mobile and desktop.
- Only required production dependencies are 16.4k from
all.min.css
and 8.4k fromall.min.js
. - GitHub Pages is served with Nginx and automatically gzip's content.
- Built mobile first
- GitHub pages hosting
- Every GitHub Page is run through Jekyll when you push content to a specially named branch within your repository. For User Pages, use the master branch in your
username.github.io
repository. For Project Pages, use thegh-pages
branch in your project's repository.
- Every GitHub Page is run through Jekyll when you push content to a specially named branch within your repository. For User Pages, use the master branch in your
- Jekyll blog and feed
- Componentized architecture
- npm
- Bower
- Gulp
- Jekyll
- ES6 / ES2015
- Babeljs
- Component modules
- Sourcemaps
- Uglify and concat
- JSHint +
.jshintrc
- Sass
- Via node-sass (libsass)
- Minimal/flat/clean/whatever design
- BEM components
- Branded reset
- Theme
- Component partials
- Autoprefixer
- Sourcemaps
- Minify and concat
- Flexbox
- Custom icomoon icons
selection
and$icons
Sass map
- Responsive offscreen vanilla nav
- BrowserSync
.editorconfig
- Support in all modern browsers and devices; CSS and JS will break on IE < 9 (with a banner encouraging the user to upgrade their browser).
Getting Started
- Install Node + npm.
- Download this project.
- Run
npm install
andbower install
to get dependencies. - Run
gulp serve
. This will run all of the gulp tasks (super fast), then run the jekyll build (takes a bit), then launch a live reloading BrowserSnc server for quick development. You may need to kill and re-rungulp serve
if you add a new directory/file to the project.
Congrats! You have a running project ;)
Required Customizations
_config.yml
.- Images and favicons in
public/src/images/
; I highly recommend using realfavicongenerator as thefavicons
folder it gives you can completely replace the defaultpublic/images/favicons
and the HTML is already in place; otherwise, you would need to tweak the_includes/favicons.html
. - Update the home page(
index.html
). - Add/update other pages in
*/index.html
(including the default "About" page). - Add/update components in
public/src/components/
which are imported intomain.js
andmain.scss
and liquid templates in pages,_includes
and_layouts
depending on the file type(s) used.
Optional Customizations
- Update the
README.md
. - Add/update icons to
public/src/fonts/icomoon/fonts/*
and the related$icons
Sass map inpublic/src/components/icons/_icons.scss
. - Google Webmaster verification: update and uncomment the related line in
_includes/head.html
. - Google analytics
- add your
googleAnalyticsID
inpublic/src/components/analytics/_analytics.js
- uncomment the import and init lines in
pulic/src/main.js
.
- add your
- If you want a custom domain, follow GitHub's instructions.
- Add a
CNAME
file to the project root with a single line:www.yourdomain.com
. - Change your
CNAME
record with your domain manager to point toyourproject.github.io
so that going towww.yourdomain.com
works. - Changing/adding two A records to point to
192.30.252.153
and192.30.252.154
so that going toyourdomain.com
(nowww
) also works.
- Add a
- If you want a blog, just add
.md
posts to the_posts/
directory and they will show up at/blog
See Jekyll's docs for more info and customizations.
Contributing
Feel free to submit pull requests, just make sure to bump the semver version with npm version
and git push --tags
;)
Built with ♡ by @trevordmiller