Giter VIP home page Giter VIP logo

middleman-gh-pages's Introduction

Middleman Github Pages

Gem Version Gem Downloads

Middleman makes creating static sites a joy, Github Pages hosts static sites for free, Middleman Github Pages brings the two together. Middleman Github Pages is just a few rake tasks that automate the process of deploying a Middleman site to Github Pages.

Installation

Add this line to your Gemfile:

gem 'middleman-gh-pages'

You'll also need to require the gem in your Rakefile:

require 'middleman-gh-pages'

Usage

Middleman Github Pages provides the following rake tasks:

rake build    # Compile all files into the build directory
rake publish  # Build and publish to Github Pages

The only assumption is that you are deploying to a gh-pages branch in the same remote as the source. rake publish will create this branch for you if it doesn't exist.

Environment Variable Options

ALLOW_DIRTY

You cannot deploy your site if you have uncommitted changes, but you can override this (default: nil):

bundle exec rake publish ALLOW_DIRTY=true

COMMIT_MESSAGE_SUFFIX

You can append a custom suffix to commit messages on the build branch (default: nil):

bundle exec rake publish COMMIT_MESSAGE_SUFFIX="[skip-ci]"

REMOTE_NAME

You can change the remote that you deploy to (default: origin):

bundle exec rake publish REMOTE_NAME=upstream

BRANCH_NAME

If you're publishing a personal or organization page, you may want to use the branch master instead of gh-pages (default: gh-pages):

bundle exec rake publish BRANCH_NAME=master

PROJECT_ROOT

If your middleman project isn't at the root of your repository, you will likely need to change this (default: root of git repository):

bundle exec rake publish PROJECT_ROOT=/Users/me/projects/repo/www

BUILD_DIR

If you override the default middlemant :build_dir setting, you will likely also need to set this variable (default: <PROJECT_ROOT>/build):

bundle exec rake publish BUILD_DIR=/some/custom/path/to/public

Setting ENV variables from your Rakefile

Of course, for more permanent settings, you can always set these environment variables directly in your Rakefile instead of from the command line.

require "middleman-gh-pages"

# Ensure builds are skipped when publishing to the gh-pages branch
ENV["COMMIT_MESSAGE_SUFFIX"] = "[skip ci]"
# Ignore errors about dirty builds (not recommended)
ENV["ALLOW_DIRTY"] = "true"

Custom Domain

To set up a custom domain, you can follow the GitHub help page.

NOTE You will need to put your CNAME file in the source directory of your middleman project, NOT in its root directory. This will result in the CNAME file being in the root of the generated static site in your gh-pages branch.

Project Page Path Issues

Since project pages deploy to a subdirectory, assets and page paths are relative to the organization or user that owns the repo. If you're treating the project pages as a standalone site, you can tell Middleman to generate relative paths for assets and links with these settings in the build configuration in config.rb

activate :relative_assets
set :relative_links, true

NOTE This only affects sites being accessed at the username.github.io/projectname URL, not when accessed at a custom CNAME.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

middleman-gh-pages's People

Contributors

adamlogic avatar auscaster avatar cybernetlab avatar jagthedrummer avatar johncolvin avatar josephholsten avatar mehulkar avatar michaek avatar pairing avatar rmm5t avatar rmw avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.