Merge pull request #229 from github/chat-slide-tweak
[another_project.git] / Rakefile
1 # Kris Brown
2 # https://raw.github.com/krisb/jekyll-template/
3
4 task :default => :server
5
6 desc 'Clean up generated site'
7 task :clean do
8   cleanup
9 end
10
11 desc 'Build site with Jekyll'
12 task :build => :clean do
13 #  compass
14   jekyll
15 end
16
17 desc 'Start server with --auto'
18 task :server => :clean do
19 #  compass
20   jekyll('--server --auto')
21 end
22
23 #desc 'Build and deploy'
24 #task :deploy => :build do
25 #  sh 'rsync -rtzh --progress --delete _site/ username@servername:/var/www/websitename/'
26 #end
27
28 desc 'Check links for site already running on localhost:4000'
29 task :check_links do
30   begin
31     require 'anemone'
32     root = 'http://localhost:4000/'
33     Anemone.crawl(root, :discard_page_bodies => true) do |anemone|
34       anemone.after_crawl do |pagestore|
35         broken_links = Hash.new { |h, k| h[k] = [] }
36         pagestore.each_value do |page|
37           if page.code != 200
38             referrers = pagestore.pages_linking_to(page.url)
39             referrers.each do |referrer|
40               broken_links[referrer] << page
41             end
42           end
43         end
44         broken_links.each do |referrer, pages|
45           puts "#{referrer.url} contains the following broken links:"
46           pages.each do |page|
47             puts "  HTTP #{page.code} #{page.url}"
48           end
49         end
50       end
51     end
52
53   rescue LoadError
54     abort 'Install anemone gem: gem install anemone'
55   end
56 end
57
58 def cleanup
59   sh 'rm -rf _site'
60 end
61
62 def jekyll(opts = '')
63   sh 'jekyll ' + opts
64 end
65
66 def compass(opts = '')
67   # sh 'compass compile -c config.rb --force ' + opts
68 end
69