guard-jekyll-plus 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ .DS_Store
2
+ *.gem
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in guard-jekyll-plus.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,71 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ guard-jekyll-plus (1.0.0)
5
+ guard (>= 1.1.0)
6
+ jekyll (>= 1.0.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ classifier (1.3.3)
12
+ fast-stemmer (>= 1.0.0)
13
+ coderay (1.0.9)
14
+ colorator (0.1)
15
+ commander (4.1.3)
16
+ highline (~> 1.6.11)
17
+ directory_watcher (1.4.1)
18
+ fast-stemmer (1.0.2)
19
+ ffi (1.9.0)
20
+ formatador (0.2.4)
21
+ guard (1.8.1)
22
+ formatador (>= 0.2.4)
23
+ listen (>= 1.0.0)
24
+ lumberjack (>= 1.0.2)
25
+ pry (>= 0.9.10)
26
+ thor (>= 0.14.6)
27
+ highline (1.6.19)
28
+ jekyll (1.0.3)
29
+ classifier (~> 1.3)
30
+ colorator (~> 0.1)
31
+ commander (~> 4.1.3)
32
+ directory_watcher (~> 1.4.1)
33
+ kramdown (~> 1.0.2)
34
+ liquid (~> 2.3)
35
+ maruku (~> 0.5)
36
+ pygments.rb (~> 0.5.0)
37
+ safe_yaml (~> 0.7.0)
38
+ kramdown (1.0.2)
39
+ liquid (2.5.0)
40
+ listen (1.2.2)
41
+ rb-fsevent (>= 0.9.3)
42
+ rb-inotify (>= 0.9)
43
+ rb-kqueue (>= 0.2)
44
+ lumberjack (1.0.4)
45
+ maruku (0.6.1)
46
+ syntax (>= 1.0.0)
47
+ method_source (0.8.1)
48
+ posix-spawn (0.3.6)
49
+ pry (0.9.12.2)
50
+ coderay (~> 1.0.5)
51
+ method_source (~> 0.8)
52
+ slop (~> 3.4)
53
+ pygments.rb (0.5.1)
54
+ posix-spawn (~> 0.3.6)
55
+ yajl-ruby (~> 1.1.0)
56
+ rb-fsevent (0.9.3)
57
+ rb-inotify (0.9.0)
58
+ ffi (>= 0.5.0)
59
+ rb-kqueue (0.2.0)
60
+ ffi (>= 0.5.0)
61
+ safe_yaml (0.7.1)
62
+ slop (3.4.5)
63
+ syntax (1.0.0)
64
+ thor (0.18.1)
65
+ yajl-ruby (1.1.0)
66
+
67
+ PLATFORMS
68
+ ruby
69
+
70
+ DEPENDENCIES
71
+ guard-jekyll-plus!
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Brandon Mathis
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,126 @@
1
+ # Guard Jekyll Plus
2
+
3
+ A Guard plugin for smarter Jekyll watching.
4
+
5
+ Features:
6
+
7
+ - Changes to static files apply without triggering an unnecessary build.
8
+ - Only template file changes trigger a Jekyll build.
9
+
10
+ ## Installation
11
+
12
+ If using Bundler, add this line to your application's Gemfile:
13
+
14
+ gem 'guard-jekyll-plus'
15
+
16
+ And then run:
17
+
18
+ $ bundle
19
+
20
+ Or install it manually with:
21
+
22
+ $ gem install guard-jekyll-plus
23
+
24
+
25
+ ## Usage
26
+
27
+ Navigate to your Jekyll project directory and create a Guardfile using:
28
+
29
+ $ guard init jekyll
30
+
31
+ Or if you already have a Guardfile, add a Jekyll guard.
32
+
33
+ ```ruby
34
+ guard :jekyll do
35
+ watch /.*/
36
+ ignore /^_site/
37
+ end
38
+ ```
39
+
40
+ Run the guard and Jekyll will begin watching your project.
41
+
42
+ $ guard
43
+
44
+ If your Jekyll project has a non-standard directory stucture like this:
45
+
46
+ ```
47
+ - source/
48
+ - public/
49
+ _config.yml
50
+ ```
51
+
52
+ You would do this instead:
53
+
54
+ ```ruby
55
+ guard :jekyll do
56
+ watch /^source/
57
+ watch /_config.yml/
58
+ end
59
+ ```
60
+
61
+ For the most part that's all you'll ever need to do. There are some things you can configure though.
62
+
63
+ ## Configuration
64
+
65
+ This guard has two configurations.
66
+
67
+ | Config | Description | Default
68
+ |:-------------|:-------------------------------------------------|:-------------------------------------------------------|
69
+ | `extensions` | Array of file extensions to trigger Jekyll build | ['md','markdown','textile','html','haml','slim','xml'] |
70
+ | `config` | Array of configuration files | ['_config.yml'] |
71
+
72
+ **Note:** customizations to the `extensions` configuration are additive.
73
+
74
+ ### Configuring Jekyll watched file extensions
75
+
76
+ Here's how you would add `txt` to the list of file extensions which triggers a Jekyll build.
77
+
78
+ ```ruby
79
+ guard :jekyll, :extensions => ['txt'] do
80
+ watch /.*/
81
+ ignore /^_site/
82
+ end
83
+ ```
84
+
85
+ Now Guard will be watching for changes to txt, md, markdown, textile, html, haml, slim, xml files. When these files change Guard will trigger a Jekyll build. Files
86
+ which don't match these extensions will be simply copied over to the destination directory when a change occurs, or deleted if appropriate.
87
+
88
+ ### Configuring Jekyll config file
89
+
90
+ Here's how you might tell Jekyll to read from multiple configuration files.
91
+
92
+ ```ruby
93
+ guard :jekyll, :config => ['settings.yml', 'override.yml'] do
94
+ watch /.*/
95
+ ignore /^_site/
96
+ end
97
+ ```
98
+
99
+ ## Contributing
100
+
101
+ If you find this to be busticated, let me know in the issues.
102
+
103
+ ## License
104
+
105
+ Copyright (c) 2013 Brandon Mathis
106
+
107
+ MIT License
108
+
109
+ Permission is hereby granted, free of charge, to any person obtaining
110
+ a copy of this software and associated documentation files (the
111
+ "Software"), to deal in the Software without restriction, including
112
+ without limitation the rights to use, copy, modify, merge, publish,
113
+ distribute, sublicense, and/or sell copies of the Software, and to
114
+ permit persons to whom the Software is furnished to do so, subject to
115
+ the following conditions:
116
+
117
+ The above copyright notice and this permission notice shall be
118
+ included in all copies or substantial portions of the Software.
119
+
120
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
121
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
122
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
123
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
124
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
125
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
126
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'guard/jekyll/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "guard-jekyll-plus"
8
+ gem.version = Guard::JekyllVersion::VERSION
9
+ gem.authors = ["Brandon Mathis"]
10
+ gem.email = ["brandon@imathis.com"]
11
+ gem.description = %q{A Guard plugin for smarter Jekyll watching}
12
+ gem.summary = %q{A Guard plugin for Jekyll which intelligently handles changes to static and template files, only running a Jekyll build when necessary. }
13
+ gem.homepage = "http://github.com/imathis/guard-jekyll-plus"
14
+
15
+ gem.add_dependency 'guard', '>= 1.1.0'
16
+ gem.add_dependency 'jekyll', '>= 1.0.0'
17
+
18
+ gem.files = `git ls-files`.split($/)
19
+ gem.require_paths = ["lib"]
20
+ end
@@ -0,0 +1,5 @@
1
+ guard :jekyll do
2
+ watch /.*/
3
+ ignore /^_site/
4
+ end
5
+
@@ -0,0 +1,5 @@
1
+ module Guard
2
+ class JekyllVersion
3
+ VERSION = "1.0.0"
4
+ end
5
+ end
@@ -0,0 +1,160 @@
1
+ require 'guard'
2
+ require 'guard/guard'
3
+
4
+ require 'jekyll'
5
+
6
+ module Guard
7
+ class Jekyll < Guard
8
+
9
+ def initialize (watchers=[], options={})
10
+ super
11
+
12
+ default_extensions = ['md','markdown','textile','html','haml','slim','xml','yml']
13
+
14
+ @options = {
15
+ :extensions => [],
16
+ :config => ['_config.yml']
17
+ }.merge(options)
18
+
19
+ config = jekyll_config(@options)
20
+ @site = ::Jekyll::Site.new config
21
+ @source = local_path config['source']
22
+ @destination = local_path config['destination']
23
+
24
+ extensions = @options[:extensions].concat(default_extensions).flatten.uniq
25
+ # Convert array of extensions into a regex for matching file extensions eg, /\.md$|\.markdown$|\.html$/i
26
+ @extensions = Regexp.new extensions.map { |e| (e << '$').gsub('\.', '\\.') }.join('|'), true
27
+
28
+ end
29
+
30
+ # Calls #run_all if the :all_on_start option is present.
31
+ def start
32
+ UI.info 'Guard::Jekyll is watching for file changes'
33
+ build
34
+ end
35
+
36
+ def reload
37
+ build
38
+ end
39
+
40
+ def run_all
41
+ build
42
+ end
43
+
44
+ def run_on_modifications(paths)
45
+ changes(paths)
46
+ end
47
+
48
+ def run_on_additions(paths)
49
+ changes(paths)
50
+ end
51
+
52
+ def run_on_removals(paths)
53
+ paths.each { |file| remove file }
54
+ end
55
+
56
+
57
+ private
58
+
59
+ def build
60
+ begin
61
+ UI.info "Guard::Jekyll "+" building".yellow + " source: #{@source}, destination: #{@destination}"
62
+ @site.process
63
+ UI.info "Guard::Jekyll "+" complete".green + " #{@source} built to #{@destination}"
64
+
65
+ rescue Exception => e
66
+ UI.error "Guard::Jekyll build has failed"
67
+ throw :task_has_failed
68
+ end
69
+ end
70
+
71
+ # Copy static files to destination directory
72
+ #
73
+ def copy(file)
74
+ begin
75
+ path = destination_path file
76
+ FileUtils.mkdir_p File.dirname(path)
77
+ FileUtils.cp file, path
78
+ UI.info "Guard::Jekyll" + " copied ".green + "#{file} -> #{path}"
79
+ rescue Exception => e
80
+ UI.error "Guard::Jekyll copy has failed"
81
+ UI.error e
82
+ throw :task_has_failed
83
+ end
84
+ end
85
+
86
+ # Remove deleted source file/directories from destination
87
+ #
88
+ def remove(file)
89
+ path = destination_path file
90
+ if File.exist? path
91
+ begin
92
+
93
+ FileUtils.rm path
94
+ UI.info "Guard::Jekyll" + " removed ".red + path
95
+
96
+ dir = File.dirname path
97
+ if Dir[dir+'/*'].empty?
98
+ FileUtils.rm_r(dir)
99
+ UI.info "Guard::Jekyll" + " removed ".red + dir
100
+ end
101
+
102
+ rescue Exception => e
103
+ UI.error "Guard::Jekyll remove has failed"
104
+ UI.error e
105
+ throw :task_has_failed
106
+ end
107
+
108
+ end
109
+ true
110
+ end
111
+
112
+ def changes(paths)
113
+ matches = []
114
+ copy_files = []
115
+
116
+ paths.each do |file|
117
+ if file =~ @extensions
118
+ matches.push file
119
+ else
120
+ copy_files.push file
121
+ end
122
+ end
123
+
124
+ # If changes match Jekyll extensions, trigger a build else, copy files manually
125
+ #
126
+ if matches.length > 0
127
+ build
128
+ else
129
+ copy_files.each { |f| copy f }
130
+ end
131
+ end
132
+
133
+ def jekyll_config(options)
134
+ config_files = options[:config]
135
+ config_files = [config_files] unless config_files.is_a? Array
136
+ ::Jekyll.configuration({ "config" => config_files })
137
+ end
138
+
139
+ def local_path(path)
140
+ Dir.chdir('.')
141
+ current = Dir.pwd
142
+ path = path.sub current, ''
143
+ if path == ''
144
+ './'
145
+ else
146
+ path.sub /^\//, ''
147
+ end
148
+ end
149
+
150
+ def destination_path(file)
151
+ if @source =~ /^\./
152
+ File.join @destination, file
153
+ else
154
+ file.sub /^#{@source}/, "#{@destination}"
155
+ end
156
+ end
157
+
158
+ end
159
+ end
160
+
data/test/.gitignore ADDED
@@ -0,0 +1 @@
1
+ _site
data/test/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'guard-jekyll-plus', :path => "../"
data/test/Gemfile.lock ADDED
@@ -0,0 +1,71 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ guard-jekyll-plus (1.0.0)
5
+ guard (>= 1.1.0)
6
+ jekyll (>= 1.0.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ classifier (1.3.3)
12
+ fast-stemmer (>= 1.0.0)
13
+ coderay (1.0.9)
14
+ colorator (0.1)
15
+ commander (4.1.3)
16
+ highline (~> 1.6.11)
17
+ directory_watcher (1.4.1)
18
+ fast-stemmer (1.0.2)
19
+ ffi (1.9.0)
20
+ formatador (0.2.4)
21
+ guard (1.8.1)
22
+ formatador (>= 0.2.4)
23
+ listen (>= 1.0.0)
24
+ lumberjack (>= 1.0.2)
25
+ pry (>= 0.9.10)
26
+ thor (>= 0.14.6)
27
+ highline (1.6.19)
28
+ jekyll (1.0.3)
29
+ classifier (~> 1.3)
30
+ colorator (~> 0.1)
31
+ commander (~> 4.1.3)
32
+ directory_watcher (~> 1.4.1)
33
+ kramdown (~> 1.0.2)
34
+ liquid (~> 2.3)
35
+ maruku (~> 0.5)
36
+ pygments.rb (~> 0.5.0)
37
+ safe_yaml (~> 0.7.0)
38
+ kramdown (1.0.2)
39
+ liquid (2.5.0)
40
+ listen (1.2.2)
41
+ rb-fsevent (>= 0.9.3)
42
+ rb-inotify (>= 0.9)
43
+ rb-kqueue (>= 0.2)
44
+ lumberjack (1.0.4)
45
+ maruku (0.6.1)
46
+ syntax (>= 1.0.0)
47
+ method_source (0.8.1)
48
+ posix-spawn (0.3.6)
49
+ pry (0.9.12.2)
50
+ coderay (~> 1.0.5)
51
+ method_source (~> 0.8)
52
+ slop (~> 3.4)
53
+ pygments.rb (0.5.1)
54
+ posix-spawn (~> 0.3.6)
55
+ yajl-ruby (~> 1.1.0)
56
+ rb-fsevent (0.9.3)
57
+ rb-inotify (0.9.0)
58
+ ffi (>= 0.5.0)
59
+ rb-kqueue (0.2.0)
60
+ ffi (>= 0.5.0)
61
+ safe_yaml (0.7.1)
62
+ slop (3.4.5)
63
+ syntax (1.0.0)
64
+ thor (0.18.1)
65
+ yajl-ruby (1.1.0)
66
+
67
+ PLATFORMS
68
+ ruby
69
+
70
+ DEPENDENCIES
71
+ guard-jekyll-plus!
data/test/Guardfile ADDED
@@ -0,0 +1,8 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+ #
4
+
5
+ guard :jekyll do
6
+ watch /.*/
7
+ ignore /^_site/
8
+ end
data/test/_config.yml ADDED
@@ -0,0 +1,2 @@
1
+ name: Your New Jekyll Site
2
+ pygments: true
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6
+ <title>{{ page.title }}</title>
7
+ <meta name="viewport" content="width=device-width">
8
+
9
+ <!-- syntax highlighting CSS -->
10
+ <link rel="stylesheet" href="/css/syntax.css">
11
+
12
+ <!-- Custom CSS -->
13
+ <link rel="stylesheet" href="/css/main.css">
14
+
15
+ </head>
16
+ <body>
17
+
18
+ <div class="container">
19
+ <div class="site">
20
+ <div class="header">
21
+ <h1 class="title"><a href="/">{{ site.name }}</a></h1>
22
+ <a class="extra" href="/">home</a>
23
+ </div>
24
+
25
+ {{ content }}
26
+
27
+ <div class="footer">
28
+ <div class="contact">
29
+ <p>
30
+ Your Name<br />
31
+ What You Are<br />
32
+ your@email.com
33
+ </p>
34
+ </div>
35
+ <div class="contact">
36
+ <p>
37
+ <a href="http://github.com/yourusername/">github.com/yourusername</a><br />
38
+ <a href="http://twitter.com/yourusername/">twitter.com/yourusername</a><br />
39
+ </p>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div> <!-- /container -->
44
+
45
+ </body>
46
+ </html>
@@ -0,0 +1,9 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <h2>{{ page.title }}</h2>
5
+ <p class="meta">{{ page.date | date_to_string }}</p>
6
+
7
+ <div class="post">
8
+ {{ content }}
9
+ </div>
@@ -0,0 +1,24 @@
1
+ ---
2
+ layout: post
3
+ title: "Welcome to Jekyll!"
4
+ date: 2013-07-08 16:37:07
5
+ categories: jekyll update
6
+ ---
7
+
8
+ You'll find this post in your `_posts` directory - edit this post and re-build (or run with the `-w` switch) to see your changes!
9
+ To add new posts, simply add a file in the `_posts` directory that follows the convention: YYYY-MM-DD-name-of-post.ext.
10
+
11
+ Jekyll also offers powerful support for code snippets:
12
+
13
+ {% highlight ruby %}
14
+ def print_hi(name)
15
+ puts "Hi, #{name}"
16
+ end
17
+ print_hi('Tom')
18
+ #=> prints 'Hi, Tom' to STDOUT.
19
+ {% endhighlight %}
20
+
21
+ Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll's GitHub repo][jekyll-gh].
22
+
23
+ [jekyll-gh]: https://github.com/mojombo/jekyll
24
+ [jekyll]: http://jekyllrb.com
data/test/css/main.css ADDED
@@ -0,0 +1,165 @@
1
+ /*****************************************************************************/
2
+ /*
3
+ /* Common
4
+ /*
5
+ /*****************************************************************************/
6
+
7
+ /* Global Reset */
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ }
12
+
13
+ html, body { height: 100%; }
14
+
15
+ body {
16
+ background-color: #FFF;
17
+ font: 13.34px Helvetica, Arial, sans-serif;
18
+ font-size: small;
19
+ text-align: center;
20
+ }
21
+
22
+ h1, h2, h3, h4, h5, h6 {
23
+ font-size: 100%; }
24
+
25
+ h1 { margin-bottom: 1em; }
26
+ p { margin: 1em 0; }
27
+
28
+ a { color: #00a; }
29
+ a:hover { color: #000; }
30
+ a:visited { color: #a0a; }
31
+
32
+ table {
33
+ font-size: inherit;
34
+ font: 100%;
35
+ }
36
+
37
+ /*****************************************************************************/
38
+ /*
39
+ /* Home
40
+ /*
41
+ /*****************************************************************************/
42
+ ul.posts {
43
+ list-style-type: none;
44
+ margin-bottom: 2em;
45
+ }
46
+
47
+ ul.posts li {
48
+ line-height: 1.75em;
49
+ }
50
+
51
+ ul.posts span {
52
+ color: #aaa;
53
+ font-family: Monaco, "Courier New", monospace;
54
+ font-size: 80%;
55
+ }
56
+
57
+ /*****************************************************************************/
58
+ /*
59
+ /* Site
60
+ /*
61
+ /*****************************************************************************/
62
+
63
+ .site {
64
+ font-size: 115%;
65
+ text-align: justify;
66
+ width: 42em;
67
+ margin: 3em auto 2em;
68
+ line-height: 1.5em;
69
+ }
70
+
71
+ .site .header a {
72
+ font-weight: bold;
73
+ text-decoration: none;
74
+ }
75
+
76
+ .site .header h1.title {
77
+ display: inline-block;
78
+ margin-bottom: 2em;
79
+ }
80
+
81
+ .site .header h1.title a {
82
+ color: #a00;
83
+ }
84
+
85
+ .site .header h1.title a:hover {
86
+ color: #000;
87
+ }
88
+
89
+ .site .header a.extra {
90
+ color: #aaa;
91
+ margin-left: 1em;
92
+ }
93
+
94
+ .site .header a.extra:hover {
95
+ color: #000;
96
+ }
97
+
98
+ .site .meta {
99
+ color: #aaa;
100
+ }
101
+
102
+ .site .footer {
103
+ font-size: 80%;
104
+ color: #666;
105
+ border-top: 4px solid #eee;
106
+ margin-top: 2em;
107
+ overflow: hidden;
108
+ }
109
+
110
+ .site .footer .contact {
111
+ float: left;
112
+ margin-right: 3em;
113
+ }
114
+
115
+ .site .footer .contact a {
116
+ color: #8085C1;
117
+ }
118
+
119
+ .site .footer .rss {
120
+ margin-top: 1.1em;
121
+ margin-right: -.2em;
122
+ float: right;
123
+ }
124
+
125
+ .site .footer .rss img {
126
+ border: 0;
127
+ }
128
+
129
+ /*****************************************************************************/
130
+ /*
131
+ /* Posts
132
+ /*
133
+ /*****************************************************************************/
134
+
135
+ /* standard */
136
+ .post pre {
137
+ border: 1px solid #ddd;
138
+ background-color: #eef;
139
+ padding: 0 .4em;
140
+ }
141
+
142
+ .post ul, .post ol {
143
+ margin-left: 1.35em;
144
+ }
145
+
146
+ .post code {
147
+ border: 1px solid #ddd;
148
+ background-color: #eef;
149
+ padding: 0 .2em;
150
+ }
151
+
152
+ .post pre code {
153
+ border: none;
154
+ }
155
+
156
+ /* terminal */
157
+ .post pre.terminal {
158
+ border: 1px solid #000;
159
+ background-color: #333;
160
+ color: #FFF;
161
+ }
162
+
163
+ .post pre.terminal code {
164
+ background-color: #333;
165
+ }
@@ -0,0 +1,60 @@
1
+ .highlight { background: #ffffff; }
2
+ .highlight .c { color: #999988; font-style: italic } /* Comment */
3
+ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
4
+ .highlight .k { font-weight: bold } /* Keyword */
5
+ .highlight .o { font-weight: bold } /* Operator */
6
+ .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
7
+ .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
8
+ .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
9
+ .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
10
+ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
11
+ .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
12
+ .highlight .ge { font-style: italic } /* Generic.Emph */
13
+ .highlight .gr { color: #aa0000 } /* Generic.Error */
14
+ .highlight .gh { color: #999999 } /* Generic.Heading */
15
+ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
16
+ .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
17
+ .highlight .go { color: #888888 } /* Generic.Output */
18
+ .highlight .gp { color: #555555 } /* Generic.Prompt */
19
+ .highlight .gs { font-weight: bold } /* Generic.Strong */
20
+ .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
21
+ .highlight .gt { color: #aa0000 } /* Generic.Traceback */
22
+ .highlight .kc { font-weight: bold } /* Keyword.Constant */
23
+ .highlight .kd { font-weight: bold } /* Keyword.Declaration */
24
+ .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
25
+ .highlight .kr { font-weight: bold } /* Keyword.Reserved */
26
+ .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
27
+ .highlight .m { color: #009999 } /* Literal.Number */
28
+ .highlight .s { color: #d14 } /* Literal.String */
29
+ .highlight .na { color: #008080 } /* Name.Attribute */
30
+ .highlight .nb { color: #0086B3 } /* Name.Builtin */
31
+ .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
32
+ .highlight .no { color: #008080 } /* Name.Constant */
33
+ .highlight .ni { color: #800080 } /* Name.Entity */
34
+ .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
35
+ .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
36
+ .highlight .nn { color: #555555 } /* Name.Namespace */
37
+ .highlight .nt { color: #000080 } /* Name.Tag */
38
+ .highlight .nv { color: #008080 } /* Name.Variable */
39
+ .highlight .ow { font-weight: bold } /* Operator.Word */
40
+ .highlight .w { color: #bbbbbb } /* Text.Whitespace */
41
+ .highlight .mf { color: #009999 } /* Literal.Number.Float */
42
+ .highlight .mh { color: #009999 } /* Literal.Number.Hex */
43
+ .highlight .mi { color: #009999 } /* Literal.Number.Integer */
44
+ .highlight .mo { color: #009999 } /* Literal.Number.Oct */
45
+ .highlight .sb { color: #d14 } /* Literal.String.Backtick */
46
+ .highlight .sc { color: #d14 } /* Literal.String.Char */
47
+ .highlight .sd { color: #d14 } /* Literal.String.Doc */
48
+ .highlight .s2 { color: #d14 } /* Literal.String.Double */
49
+ .highlight .se { color: #d14 } /* Literal.String.Escape */
50
+ .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
51
+ .highlight .si { color: #d14 } /* Literal.String.Interpol */
52
+ .highlight .sx { color: #d14 } /* Literal.String.Other */
53
+ .highlight .sr { color: #009926 } /* Literal.String.Regex */
54
+ .highlight .s1 { color: #d14 } /* Literal.String.Single */
55
+ .highlight .ss { color: #990073 } /* Literal.String.Symbol */
56
+ .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
57
+ .highlight .vc { color: #008080 } /* Name.Variable.Class */
58
+ .highlight .vg { color: #008080 } /* Name.Variable.Global */
59
+ .highlight .vi { color: #008080 } /* Name.Variable.Instance */
60
+ .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
data/test/index.html ADDED
@@ -0,0 +1,13 @@
1
+ ---
2
+ layout: default
3
+ title: Your New Jekyll Site
4
+ ---
5
+
6
+ <div id="home">
7
+ <h1>Blog Posts</h1>
8
+ <ul class="posts">
9
+ {% for post in site.posts %}
10
+ <li><span>{{ post.date | date_to_string }}</span> &raquo; <a href="{{ post.url }}">{{ post.title }}</a></li>
11
+ {% endfor %}
12
+ </ul>
13
+ </div>
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: guard-jekyll-plus
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Brandon Mathis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-07-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: guard
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.1.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.1.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: jekyll
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 1.0.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.0.0
46
+ description: A Guard plugin for smarter Jekyll watching
47
+ email:
48
+ - brandon@imathis.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - .gitignore
54
+ - Gemfile
55
+ - Gemfile.lock
56
+ - LICENSE.txt
57
+ - README.md
58
+ - Rakefile
59
+ - guard-jekyll-plus.gemspec
60
+ - lib/guard/jekyll.rb
61
+ - lib/guard/jekyll/templates/Guardfile
62
+ - lib/guard/jekyll/version.rb
63
+ - test/.gitignore
64
+ - test/Gemfile
65
+ - test/Gemfile.lock
66
+ - test/Guardfile
67
+ - test/_config.yml
68
+ - test/_layouts/default.html
69
+ - test/_layouts/post.html
70
+ - test/_posts/2013-07-08-welcome-to-jekyll.markdown
71
+ - test/css/main.css
72
+ - test/css/syntax.css
73
+ - test/index.html
74
+ homepage: http://github.com/imathis/guard-jekyll-plus
75
+ licenses: []
76
+ post_install_message:
77
+ rdoc_options: []
78
+ require_paths:
79
+ - lib
80
+ required_ruby_version: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ requirements: []
93
+ rubyforge_project:
94
+ rubygems_version: 1.8.23
95
+ signing_key:
96
+ specification_version: 3
97
+ summary: A Guard plugin for Jekyll which intelligently handles changes to static and
98
+ template files, only running a Jekyll build when necessary.
99
+ test_files: []