This is the source code for my personal website, danielgroves.net
Setting up and using the site is pretty easy. Make sure you have Ruby installed, and the bundler gem, then install the required gems.
gem install bundler
bundle install
Then run using rake : bundle exec rake dev:watch
Then simply go to localhost:4000 in your browser.
Other rake tasks are:
version
- Jekyll version number.dev:watch
- Start the Jekyll server in watch mode with future and draft posts. Loads the_config_dev.yml
file to override production values with development values.dev:build
- Builds the site with the default options. Loads the_config_dev.yml
file to override production values with development values.deploy
- Do a production build.typekit:add_domain
- Adds a domain to a typekit kit whitelist based on your environment.typekit:remove_domain
- Removes a domain from a typekit kit whitelist based on your environment.assets:precompile
- Default task called by the build pipeline. See below for details.
The Rake tasks in the typekit
namespace are used by Heroku as postdeploy and pr-predestroy scripts. This allows Heroku to automatically add and remove Review App domains from the Typekit kit whitelist. This is achieved by calling into the Typekit API to add and remove the domains. Three environmental variables are required:
TYPEKIT_API_AUTH
- This should be a valid Typekit API Key.TYPEKIT_KIT_ID
- The ID of the kit you want to update (this is supplied on the settings page for the kit).HEROKU_APP_NAME
- This is automatically supplied by Heroku, and is used to build the app domain.
When these three variables are present the Rake tasks can be invoked.
Deployment is completely automated, and happens via a Heroku pipeline. Anything that goes to the master
branch is automatically deployed to staging. I use Heroku Review Apps to automatically stage branches to help with gaining feedback from friends, family, and colleagues.
The Heroku Ruby Buildpack automatically runs the Rake task assets:precompile
, so to minimise my personal technical debt I utilise this default behaviour to build the site.
The content and design have been bundled into one license and the code has been bundled into a second. Check below for details.
The content and design are licensed under CC BY-NC-SA 3.0. Essentially, this allows you to share content and to adapt (or build upon) my works, but not for commercial purposes and only if you share attribution and under the same license agreement.
The photographs used on this site are licensed under CC BY-NC-ND 4.0. Essentially this means that you cannot share any of this material for commercial purposes without prior permission, but you may share for non-commercial purposes with attribution as long as it has not been modified.
The code is licensed under MIT, therefore the following applies:
Copyright (c) 2013 Daniel Groves
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.