The Minimill project template is the best way to build static sites fast. With one command, build a static page using Gulp, Handlebars.js, and SCSS.
Other Versions: ES6, Minimill internal
- Install the project in just three commands (see "Developing" below).
- Use Handlebars.js to keep our HTML organized into templates and partials.
- Use SCSS to keep our CSS organized into logical components.
- Use Autoprefixer to automatically insert browser prefixes where necessary to handle cross browser compatibility.
- Use Browsersync to automatically launch a development version of our website, reload the page whenever we change the HTML, and inject changes to CSS, JavaScript, and images with needing to reload.
- Use HTML Minifier, CSSNano, UglifyJS, and ImageMin to compress and optimize our HTML, CSS, JavaScript, and images, respectively.
- Use SCSS-Lint, JSHint, and JSCS to perform linting and style checking on our SCSS and JavaScript files.
All with one command from the terminal:
gulp serve
Install npm. Then, install gulp:
npm install -g gulp # May require `sudo`
npm install # One time
gem install scss_lint # One time
gulp serve
If you want to use this repo for your next project, make sure to make the following changes:
- Edit
data.yml
, filling in the HTML metadata associated with your site. - Edit
package.json
providing aname
,version
,description
,license
, andrepository.url
. - Remove the
.git
folder, so that you start from a fresh commit history. - Edit
LICENSE.md
andREADME.md
to your preference.
An overview of Gulp commands available:
Builds the site into the dist
directory. This includes:
- SCSS w/ linting, sourcemaps and autoprefixing
- JS linting and uglification
- Handlebars to HTML
This is used for distributing an optimized version of the site (for deployment). It includes everything from gulp build
as well as:
- SCSS minification
- CSS / JS inline-sourcing
Watchs for changes in local files and rebuilds parts of the site as necessary, into the dist
directory.
Runs gulp watch
in the background, and serves the dist
directory at localhost:3000
with automatic reloading using Browsersync.
├── Gulpfile.js # Controls Gulp, used for building the website
├── README.md # This file
├── data.yml # Metadata associated with the site.
├── dist/ # Gulp builds the static site into this directory
├── package.json # Dependencies
└── src/ # All source code
├── font/ # Font files
├── img/ # Images and SVGs
├── js/ # Javascript libraries and scripts
├── partials/ # Handlebars HTML partials that are included / extended
├── sass/ # Stylesheets
└── templates/ # Handlebars HTML files, one per page on the site.