middleman-gh-pages 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -9,7 +9,7 @@ that automate the process of deploying a Middleman site to Github Pages.
9
9
 
10
10
  Add this line to your Gemfile:
11
11
 
12
- ```shell
12
+ ```ruby
13
13
  gem 'middleman-gh-pages'
14
14
  ```
15
15
 
@@ -32,13 +32,42 @@ The only assumption is that you are deploying to a gh-pages branch in the same
32
32
  remote as the source. `rake publish` will create this branch for you if it
33
33
  doesn't exist.
34
34
 
35
- Note that you cannot deploy your site if you have uncommitted changes. You can
35
+ ## Options
36
+
37
+ You cannot deploy your site if you have uncommitted changes. You can
36
38
  override this with the `ALLOW_DIRTY` option:
37
39
 
38
40
  ```shell
39
41
  bundle exec rake publish ALLOW_DIRTY=true
40
42
  ```
41
43
 
44
+ You can append a custom suffix to commit messages on the build branch:
45
+
46
+ ```shell
47
+ bundle exec rake publish COMMIT_MESSAGE_SUFFIX="--skip-ci"
48
+ ```
49
+
50
+ You can change the remote that you deploy to:
51
+
52
+ ```shell
53
+ bundle exec rake publish REMOTE_NAME=upstream
54
+ ```
55
+
56
+ ## Custom Domain
57
+
58
+ To set up a custom domain, you can follow the [GitHub help page](https://help.github.com/articles/setting-up-a-custom-domain-with-pages).
59
+
60
+ __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.
61
+
62
+ ## Project Page Path Issues
63
+
64
+ 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`
65
+
66
+ activate :relative_assets
67
+ set :relative_links, true
68
+
69
+ __NOTE__ This only affects sites being accessed at the `username.github.io/projectname` URL, not when accessed at a custom CNAME.
70
+
42
71
  ## Contributing
43
72
 
44
73
  1. Fork it
@@ -1,8 +1,12 @@
1
1
  require 'fileutils'
2
2
 
3
+ def remote_name
4
+ ENV.fetch("REMOTE_NAME", "origin")
5
+ end
6
+
3
7
  PROJECT_ROOT = `git rev-parse --show-toplevel`.strip
4
8
  BUILD_DIR = File.join(PROJECT_ROOT, "build")
5
- GH_PAGES_REF = File.join(BUILD_DIR, ".git/refs/remotes/origin/gh-pages")
9
+ GH_PAGES_REF = File.join(BUILD_DIR, ".git/refs/remotes/#{remote_name}/gh-pages")
6
10
 
7
11
  directory BUILD_DIR
8
12
 
@@ -10,13 +14,14 @@ file GH_PAGES_REF => BUILD_DIR do
10
14
  repo_url = nil
11
15
 
12
16
  cd PROJECT_ROOT do
13
- repo_url = `git config --get remote.origin.url`.strip
17
+ repo_url = `git config --get remote.#{remote_name}.url`.strip
14
18
  end
15
19
 
16
20
  cd BUILD_DIR do
17
21
  sh "git init"
18
- sh "git remote add origin #{repo_url}"
19
- sh "git fetch origin"
22
+ sh "git remote add #{remote_name} #{repo_url}"
23
+ sh "git fetch #{remote_name}"
24
+ sh "git checkout master"
20
25
 
21
26
  if `git branch -r` =~ /gh-pages/
22
27
  sh "git checkout gh-pages"
@@ -25,7 +30,7 @@ file GH_PAGES_REF => BUILD_DIR do
25
30
  sh "touch index.html"
26
31
  sh "git add ."
27
32
  sh "git commit -m 'initial gh-pages commit'"
28
- sh "git push origin gh-pages"
33
+ sh "git push #{remote_name} gh-pages"
29
34
  end
30
35
  end
31
36
  end
@@ -36,8 +41,8 @@ task :prepare_git_remote_in_build_dir => GH_PAGES_REF
36
41
  # Fetch upstream changes on gh-pages branch
37
42
  task :sync do
38
43
  cd BUILD_DIR do
39
- sh "git fetch origin"
40
- sh "git reset --hard origin/gh-pages"
44
+ sh "git fetch #{remote_name}"
45
+ sh "git reset --hard #{remote_name}/gh-pages"
41
46
  end
42
47
  end
43
48
 
@@ -59,10 +64,11 @@ end
59
64
  desc "Build and publish to Github Pages"
60
65
  task :publish => [:not_dirty, :prepare_git_remote_in_build_dir, :sync, :build] do
61
66
  message = nil
67
+ suffix = ENV["COMMIT_MESSAGE_SUFFIX"]
62
68
 
63
69
  cd PROJECT_ROOT do
64
70
  head = `git log --pretty="%h" -n1`.strip
65
- message = "Site updated to #{head}"
71
+ message = ["Site updated to #{head}", suffix].compact.join("\n\n")
66
72
  end
67
73
 
68
74
  cd BUILD_DIR do
@@ -72,6 +78,6 @@ task :publish => [:not_dirty, :prepare_git_remote_in_build_dir, :sync, :build] d
72
78
  else
73
79
  sh "git commit -m \"#{message}\""
74
80
  end
75
- sh "git push origin gh-pages"
81
+ sh "git push #{remote_name} gh-pages"
76
82
  end
77
83
  end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module GithubPages
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-gh-pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-14 00:00:00.000000000 Z
12
+ date: 2014-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -63,8 +63,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
63
  version: '0'
64
64
  requirements: []
65
65
  rubyforge_project:
66
- rubygems_version: 1.8.24
66
+ rubygems_version: 1.8.23
67
67
  signing_key:
68
68
  specification_version: 3
69
69
  summary: Easy deployment of Middleman sites to Github Pages
70
70
  test_files: []
71
+ has_rdoc: