Ready-to-fork setup of Babel, Gulp and Jekyll for GitHub Pages. Showcase / Blog post about this repo.
npm install
in the root directory to install Gulp and Babel locally.npx gulp jekyll
to build the site with Babel and serve it with Jekyll afterwards. Visit http://localhost:4000 to see the blog.The master
branch should only be used for deploying (see considerations below). For development, switch to the dev
branch. After implementing your changes, test them by running npx gulp jekyll
and visiting http://localhost:4000
If you are happy, checkout the master
branch, merge the dev
branch, run npx gulp
to build the site into the project's root directory and push / deploy the new build to the master
branch on GitHub.
Note: You can skip Babel during development by changing source: _dist
to source: src
and running jekyll serve
in the root directory.
---
---
WebStorm does not like that and formats it wrongly every time. If you try to escape that block with // @formatter:off
, the Jekyll plugin won't work anymore. Also, it is a bit dirty to mess with the .js files. If I want to directly run them during development, they will error. So, Babel has to be called by Gulp.src
and a _dist
directory (ignored by git) would be clean. Jekyll can then generate the static site in _site
by using the files in _dist
.master
branch on GitHub. So _dist
must not be ignored by git. At the same time it is generated code so it should be ignored. A solution is to ignore _dist
on the dev
branch. Then, merge the dev
branch to the master
branch, run Gulp and push the newly _dist
to the GitHub master
branch._dist
directory, you would have to specify source: _dist
in Jekyll's _config.yml
. However, GitHub overrides the source
setting, which you cannot change (GitHub docs). So Jekyll's source directory has to be the repo's top level directory (for username.github.io pages). You also must commit the page to the master
branch. The solution is to keep the source: _dist
setting for the dev
branch, but let gulp build the site into the root directory on the master
branch (docs).master
, Gulp cannot clean the build directory before building because it is the project's root directory.master
, build and push for every deployment of the site. This gulp plugin might help with that.master
, I had to change _config.yml
and gulpfile.js
to make Gulp build into the root directory. Thus, changes to these files in dev
will have to be merged manually with master.