-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
88 lines (79 loc) · 1.59 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#
# Requirements Block...
#
require 'rubygems'
require 'bundler/setup'
require 'rake'
require 'yaml'
require 'jekyll'
require 'launchy'
require 'html-proofer'
#
# Define Variable...
#
$options = {
"source" => File.expand_path("."),
"destination" => File.expand_path("_site"),
"watch" => true,
"serving" => true
}
#
# Create Methods...
#
def build()
puts "Compiling the site..."
Jekyll::Commands::Build.process($options)
end
def serve()
puts "Running Jekyll..."
Jekyll::Commands::Serve.process($options)
end
def testsite()
puts "Testing Website..."
HTMLProofer.check_directory("./_site", {
:allow_hash_href => true,
:assume_extension => true,
:check_favicon => true,
:check_html => true,
:check_img_http => true,
:enforce_https => true,
:href_ignore => [
"http://127.0.0.1",
"http://127.0.0.1/",
"http://127.0.0.1/icingaweb2/",
"http://127.0.0.1/icingaweb2/setup"
],
:only_4xx => true,
:verbose => true,
:typhoeus => {
:verbose => false
},
:parallel => {
:in_processes => 3
}
}).run
end
#
# Default Task Specification
#
task :default => [:serve]
task :build do
build
end
task :preview do
build
Thread.new do
sleep 2
puts "Opening in browser..."
Launchy.open("http://127.0.0.1:4000")
end
serve
end
task :serve do
build
serve
end
task :test do
build
testsite
end