-
-
Save alexforsale/0941063c3604d3f204eeede2c57e561e to your computer and use it in GitHub Desktop.
Using Jekyll plugins on GitHub Pages.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Rquire jekyll to compile the site. | |
require "jekyll" | |
# Github pages publishing. | |
namespace :blog do | |
# | |
# Because we are using 3rd party plugins for jekyll to manage the asset pipeline | |
# and suchlike we are unable to just branch the code, we have to process the site | |
# localy before pushing it to the branch to publish. | |
# | |
# We built this little rake task to help make that a little bit eaiser. | |
# | |
# Usaage: | |
# bundle exec rake blog:publish | |
desc "Publish blog to gh-pages" | |
task :publish do | |
# Compile the Jekyll site using the config. | |
Jekyll::Site.new(Jekyll.configuration({ | |
"source" => ".", | |
"destination" => "_site", | |
"config" => "_config.yml" | |
})).process | |
# Get the origin to which we are going to push the site. | |
origin = `git config --get remote.origin.url` | |
# Make a temporary directory for the build before production release. | |
# This will be torn down once the task is complete. | |
Dir.mktmpdir do |tmp| | |
# Copy accross our compiled _site directory. | |
cp_r "_site/.", tmp | |
# Switch in to the tmp dir. | |
Dir.chdir tmp | |
# Prepare all the content in the repo for deployment. | |
system "git init" # Init the repo. | |
system "git add . && git commit -m 'Site updated at #{Time.now.utc}'" # Add and commit all the files. | |
# Add the origin remote for the parent repo to the tmp folder. | |
system "git remote add origin #{origin}" | |
# Push the files to the gh-pages branch, forcing an overwrite. | |
system "git push origin master:refs/heads/gh-pages --force" | |
end | |
# Done. | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment