A basic starting point for jekyll web projects
Steps to follow as soon as you download this structure to start a project:
package.js
with data about the project (name, repo, license...)LICENSE
.circleci/config.yml
with correct repo and other needed information._config.yml
and _includes/meta.html
update the project title and check for other boostrap information that can be changed or removed.graphics
folder and replace the favicon with a project related one.README.md
and rename _README.md
. Fill in the needed data. This is the most important task. Others need to be able to know what the project is about and how to work with it. This can't be stressed enough.It's better to do this straight away so no traces of project-seed are ever pushed to github and just looks more professional. The values that are not immediately know should be left blank and filled ASAP.
The gulpfile is based on the project-seed. The build system currently supports:
There are two commands, both run via yarn
.
yarn build
- clean & build everything and put it into dist folderyarn serve
- serve the pages and utilize live reload on changes to styles, fonts, images, scripts and HTML.app/assets/
|
+- scripts/: The user scripts
| |
| +- config/: configuration files (see configuration section)
|
+- styles/: The sass styles
|
+- vendor/: Any third-party script that can't be required()
|
+- graphics/: Images for the site divided in:
| |
| +- layout/: Images for layout elements (Ex: background images)
| +- meta/: Images for the meta tags (Mostly icons and facebook images)
| +- content/: Content image
|
There are 3 files to configure jekyll that get loaded according to the environment the app is being built for:
At times, it may be necessary to include options/variables specific to production
, staging
or local
in the code. To handle this, there is a master config.js file. This file should not be modified. Instead, modify one of:
When developing locally with yarn run serve
, the default will be to use production.js
(with overrides from local.js
). However, if you need to run with the staging settings, use: yarn run stage
(this will not start a server)
The script build, which uses browserify
, outputs two js files: bundle.js
and
vendor.js
:
bundle.js
, created by the javascript
task in deployment and by
watchify
during development, contains all the app-specific code:
app/scripts/main.js
and all the scripts it require
s that are local to
this app.vendor.js
, created by the vendorBundle
task, contains all the external
dependencies of the app: namely, all the packages you install using yarn add ...
.The .circleci/config.yml
file enables the usage of Circle CI as a test and deployment system. In this particular case, Travis will be looking for any changes to the repo and when a change is made to the master
branch, Travis will build the project and deploy it to the gh-pages
branch.
We're using semistandard for linting.
yarn lint
- will run linter and warn of any errors.There are linting plugins for popular editors listed in the semistandard repo.