jekyll_generator 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +33 -0
  3. data/PostInstall.txt +7 -0
  4. data/README.rdoc +58 -0
  5. data/Rakefile +28 -0
  6. data/app_generators/jekyll_generator/USAGE +5 -0
  7. data/app_generators/jekyll_generator/jekyll_generator_generator.rb +87 -0
  8. data/app_generators/jekyll_generator/templates/atom.xml +27 -0
  9. data/app_generators/jekyll_generator/templates/config.yml +1 -0
  10. data/app_generators/jekyll_generator/templates/index.markdown +6 -0
  11. data/bin/jekyll_generator +19 -0
  12. data/features/development.feature +13 -0
  13. data/features/jekyll.feature +71 -0
  14. data/features/steps/common.rb +212 -0
  15. data/features/steps/env.rb +6 -0
  16. data/features/steps/jekyll.rb +24 -0
  17. data/jekyll_generators/plain_theme/plain_theme_generator.rb +3 -0
  18. data/jekyll_generators/plain_theme/templates/_layouts/default.html +61 -0
  19. data/jekyll_generators/plain_theme/templates/_layouts/post.html +86 -0
  20. data/jekyll_generators/plain_theme/templates/css/stylesheet.css +166 -0
  21. data/jekyll_generators/textmate_theme/templates/_layouts/default.html +72 -0
  22. data/jekyll_generators/textmate_theme/templates/_layouts/post.html +91 -0
  23. data/jekyll_generators/textmate_theme/templates/css/macromates.css +380 -0
  24. data/jekyll_generators/textmate_theme/textmate_theme_generator.rb +13 -0
  25. data/lib/jekyll_generator/theme_generator_base.rb +28 -0
  26. data/lib/jekyll_generator.rb +14 -0
  27. data/script/console +10 -0
  28. data/script/destroy +14 -0
  29. data/script/generate +14 -0
  30. data/spec/jekyll_generator_spec.rb +11 -0
  31. data/spec/spec.opts +1 -0
  32. data/spec/spec_helper.rb +10 -0
  33. data/tasks/rspec.rake +21 -0
  34. metadata +119 -0
@@ -0,0 +1,380 @@
1
+ html {
2
+ background: #1e1e1e;
3
+ }
4
+ body {
5
+ background: transparent url("http://macromates.com/images/site/bg_body") repeat-y 50% 0px;
6
+ /* font: 0.72em/170% "Lucida Grande", Verdana, Helvetica, sans-serif;*/
7
+ font: 12px "Lucida Grande", Verdana, Helvetica, sans-serif;
8
+ margin: 0;
9
+ padding: 0;
10
+ }
11
+ a[href] {
12
+ color: #525151;
13
+ }
14
+
15
+ #wrapper { /* IE workaround */
16
+ margin: 0 auto;
17
+ padding: 0;
18
+ width: 750px;
19
+ }
20
+ html>body #wrapper {
21
+ margin: 0 auto;
22
+ padding: 0;
23
+ width: auto;
24
+ max-width: 750px;
25
+ }
26
+
27
+ #header {
28
+ position: relative;
29
+ /* background: #4B055A url("http://macromates.com/images/site/bg_header") no-repeat 0px 0px;*/
30
+ background: #6F1A77;
31
+ border-bottom: 1px solid #861b90;
32
+ height: 113px;
33
+ }
34
+ #header h1 {
35
+ position: absolute;
36
+ left: 60px;
37
+ top: 40px;
38
+ width: 380px;
39
+ height: 50px;
40
+ cursor: pointer;
41
+ color: white;
42
+ }
43
+
44
+ #navigation {
45
+ background: #232323 url("http://macromates.com/images/site/bg_navigation") repeat-x 0px 0px;
46
+ border-top: 5px solid #6D0E79;
47
+ border-bottom: 1px solid #171717;
48
+ margin: 0;
49
+ padding: 0.5em 0;
50
+ width: 100%;
51
+ }
52
+ #navigation ul {
53
+ margin: 0;
54
+ padding: 0;
55
+ list-style: none;
56
+ }
57
+ #navigation li {
58
+ display: inline;
59
+ margin: 0;
60
+ padding: 0 0 0 25px;
61
+ text-shadow: 0px 2px 4px #000;
62
+ }
63
+ #navigation li a {
64
+ color: #5b5b5b;
65
+ text-decoration: none;
66
+ }
67
+
68
+ #intro #navi_intro a,
69
+ #blog #navi_blog a,
70
+ #toc #navi_manual a,
71
+ #chapter #navi_manual a,
72
+ #wiki #navi_wiki a,
73
+ #community #navi_community a,
74
+ #contact #navi_contact a,
75
+ #navigation li a:hover {
76
+ color: #fff;
77
+ }
78
+
79
+ #page_body {
80
+ margin: 0;
81
+ padding: 0;
82
+ position: relative;
83
+ overflow: hidden;
84
+ }
85
+
86
+ #content { /* IE workaround */
87
+ margin: 0;
88
+ padding: 25px;
89
+ width: 430px;
90
+ height: 584px; /* (64+2*20+2)*6 - 2 - 2*25 */
91
+ background: #fff;
92
+ }
93
+ html>body #content {
94
+ margin: 0;
95
+ padding: 25px;
96
+ width: auto;
97
+ height: auto;
98
+ max-width: 430px;
99
+ min-height: 584px; /* (64+2*20+2)*6 - 2 - 2*25 */
100
+ background: #fff;
101
+ }
102
+ #content :first-child {
103
+ margin-top: 0px;
104
+ }
105
+ #content :first-child + h1 {
106
+ margin-top: 0px;
107
+ }
108
+
109
+ #sidebar {
110
+ margin: 0;
111
+ padding: 0;
112
+ top: 0px;
113
+ left: 480px;
114
+ width: 270px;
115
+ background-color: #e8eaea;
116
+ position: absolute;
117
+ }
118
+ #sidebar .item {
119
+ color: #5b5b5b;
120
+ border-bottom: 2px solid #fff;
121
+ padding: 20px;
122
+ min-height: 64px;
123
+ }
124
+ #sidebar .item * {
125
+ margin: 0px;
126
+ }
127
+ #sidebar .item h4 {
128
+ margin-bottom: 1em;
129
+ font-size: 120%;
130
+ }
131
+ #sidebar .item p {
132
+ font-size: 90%;
133
+ }
134
+ #sidebar .item a {
135
+ text-decoration: none;
136
+ }
137
+ #sidebar .item a:hover {
138
+ text-decoration: underline;
139
+ }
140
+
141
+ #sidebar .item #download,
142
+ #sidebar .item #purchase,
143
+ #sidebar .item #manual,
144
+ #sidebar .item #screencasts,
145
+ #sidebar .item #book,
146
+ #sidebar .item #rss_feed,
147
+ #sidebar .item #tickets {
148
+ display: block;
149
+ overflow: hidden;
150
+ width: 64px;
151
+ height: 64px;
152
+ float: left;
153
+ margin: 0 10px 0 0;
154
+ padding: 0;
155
+ text-indent: -9999px;
156
+ }
157
+
158
+ #sidebar .item #download { background-image: url("http://macromates.com/images/site/download"); }
159
+ #sidebar .item #purchase { background-image: url("http://macromates.com/images/site/purchase"); }
160
+ #sidebar .item #manual { background-image: url("http://macromates.com/images/site/pdf"); }
161
+ #sidebar .item #screencasts { background-image: url("http://macromates.com/images/site/quicktime"); }
162
+ #sidebar .item #book { background-image: url("http://macromates.com/images/site/book"); }
163
+ #sidebar .item #rss_feed { background-image: url("http://macromates.com/images/site/rss"); }
164
+ #sidebar .item #tickets { background-image: url("http://macromates.com/images/site/ratings"); }
165
+
166
+
167
+ #footer {
168
+ position: relative;
169
+ margin: 0;
170
+ padding: 0.75em 25px 0.75em 25px;
171
+ min-height: 1em;
172
+ clear: both;
173
+ color: #b5b5b5;
174
+ background: #2E2E2E;
175
+ }
176
+ #footer * {
177
+ margin: 0;
178
+ padding: 0;
179
+ }
180
+ #footer a {
181
+ color: #b5b5b5;
182
+ text-decoration: none;
183
+ }
184
+ #footer a:hover {
185
+ color: #2E2E2E;
186
+ background: #b5b5b5;
187
+ text-decoration: none;
188
+ }
189
+ #footer .left {
190
+ float: left;
191
+ }
192
+ #footer .right {
193
+ float: right;
194
+ }
195
+
196
+ /* ========== */
197
+ /* = Teaser = */
198
+ /* ========== */
199
+
200
+ #teaser #content:first-child {
201
+ margin-top: -25px;
202
+ }
203
+
204
+ #teaser #content { /* IE workaround */
205
+ width: 700px;
206
+ }
207
+ html>body#teaser #content {
208
+ width: auto;
209
+ max-width: 700px;
210
+ }
211
+ #teaser #sidebar {
212
+ display: none;
213
+ }
214
+
215
+ #teaser_bar {
216
+ background: #2E2E2E url("http://macromates.com/images/site/bg_teaser.gif") no-repeat 100% 0px;
217
+ color: #b5b5b5;
218
+ margin: -25px -25px 25px -25px;
219
+ padding: 10px 0 0 0;
220
+ /* float: left;*/
221
+ /* width: 100%;*/
222
+ /* overflow: hidden;*/
223
+ }
224
+ #teaser_bar .teaseritem {
225
+ float: left;
226
+ width: 29%;
227
+ padding: 40px 0px 20px 25px;
228
+ text-shadow: 2px 2px 2px #000;
229
+ /* background-color: #DDD;*/
230
+ }
231
+ #teaser_bar h2 {
232
+ color: #6b6b6b;
233
+ font-size: 280%;
234
+ font-weight: normal;
235
+ margin: 20px 0 -5px 25px;
236
+ text-shadow: 2px 2px 2px #000;
237
+ }
238
+ #teaser_bar h3 {
239
+ color: #fff;
240
+ font-size: 140%;
241
+ font-weight: normal;
242
+ }
243
+ #teaser_bar .teaseritem a {
244
+ color: #b5b5b5;
245
+ text-decoration: none;
246
+ }
247
+ #teaser_bar .teaseritem a:hover {
248
+ color: #ffffff;
249
+ text-decoration: none;
250
+ }
251
+
252
+ /* ======================== */
253
+ /* = Page Specific Styles = */
254
+ /* ======================== */
255
+
256
+ #intro #content > p:first-child {
257
+ font-weight: bold;
258
+ color: #7b7b7b;
259
+ }
260
+
261
+ #intro #content img#project_window {
262
+ float: right;
263
+ margin-left: 10px;
264
+ }
265
+ #intro #content img#theme_editor {
266
+ float: left;
267
+ margin-right: 10px;
268
+ }
269
+
270
+ #intro #content ul a {
271
+ text-decoration: none;
272
+ }
273
+ #intro #content ul a:hover {
274
+ text-decoration: underline;
275
+ }
276
+
277
+ .caution {
278
+ margin: 25px;
279
+ border: 1px solid #cccbba;
280
+ padding: 10px;
281
+ background: #f0f0f0 url("http://macromates.com/images/site/caution') no-repeat 21px center;
282
+ }
283
+ .caution ul {
284
+ margin: 0;
285
+ padding: 0 0 0 64px;
286
+ list-style-type: none;
287
+ font-size: 85%;
288
+ }
289
+ .caution li {
290
+ margin: 0;
291
+ }
292
+ .caution li + li {
293
+ margin-top: 1em;
294
+ }
295
+ .caution li p {
296
+ margin: 0;
297
+ }
298
+
299
+ .textbox {
300
+ padding: 1em 40px;
301
+ }
302
+
303
+ .graybox {
304
+ border-top: 1px solid #919699;
305
+ border-left: 1px solid #919699;
306
+ }
307
+ .graybox th {
308
+ background: #E2E2E2;
309
+ border-bottom: 1px solid #919699;
310
+ border-right: 1px solid #919699;
311
+ /* font-size: 12px;*/
312
+ font-weight: bold;
313
+ padding: 4px 8px 4px 8px;
314
+ text-align: left;
315
+ }
316
+ .graybox td {
317
+ border-bottom: 1px solid #919699;
318
+ border-right: 1px solid #919699;
319
+ /* font-size: 12px;*/
320
+ padding: 8px;
321
+ vertical-align: top;
322
+ }
323
+ .graybox p {
324
+ margin: 0;
325
+ }
326
+ .graybox p + p {
327
+ margin-top: 1em;
328
+ }
329
+
330
+ /* ========================== */
331
+ /* = Styling of user quotes = */
332
+ /* ========================== */
333
+
334
+ #quotes blockquote {
335
+ font-style: italic;
336
+ margin: 20px 20px 0 20px;
337
+ }
338
+ #quotes blockquote p {
339
+ margin: 0 0 0 0;
340
+ }
341
+ #quotes .attribution:before {
342
+ content: "— ";
343
+ }
344
+ #quotes .attribution {
345
+ color: gray;
346
+ margin: 0.5em 0 0 40px;
347
+ font-size: 90%;
348
+ }
349
+
350
+ /* ========================= */
351
+ /* = Should be in wiki.css = */
352
+ /* ========================= */
353
+
354
+ #wiki .page_group {
355
+ margin: 0;
356
+ font-size: 80%;
357
+ color: #999887;
358
+ }
359
+ #wiki .page_group a {
360
+ color: #999887;
361
+ text-decoration: none;
362
+ }
363
+ #wiki .page_group a:hover {
364
+ text-decoration: underline;
365
+ }
366
+
367
+ #wiki .page_title {
368
+ margin: 0 0 1em 0;
369
+ }
370
+ #wiki .page_title a {
371
+ color: #000;
372
+ text-decoration: none;
373
+ }
374
+ #wiki .page_title a:hover {
375
+ text-decoration: underline;
376
+ }
377
+
378
+ #wiki #sidebar ul {
379
+ margin-bottom: 0.5em;
380
+ }
@@ -0,0 +1,13 @@
1
+ require File.dirname(__FILE__) + '/../../lib/jekyll_generator'
2
+ class TextmateThemeGenerator < JekyllGenerator::ThemeGeneratorBase
3
+ def manifest
4
+ record do |m|
5
+ # Ensure appropriate folder(s) exists
6
+ m.directory '_layouts'
7
+ m.directory 'css'
8
+
9
+ m.template_copy_each ["default.html", "post.html"], "_layouts"
10
+ m.file_copy_each ["macromates.css"], "css"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,28 @@
1
+ class JekyllGenerator::ThemeGeneratorBase < RubiGen::Base
2
+ # these values are automatically setup by the config.yml file
3
+ # generated from jekyll_generator_generator.rb
4
+ # based on options/defaults
5
+ attr_reader :author, :email, :title, :name, :theme, :github_user, :header_color
6
+ attr_reader :hypenated_name
7
+
8
+ def initialize(runtime_args, runtime_options = {})
9
+ super
10
+ config_options = YAML.load(File.read(File.join(destination_root, "config.yml")))
11
+ config_options.each do |key, value|
12
+ self.send(:instance_variable_set, "@#{key}", value)
13
+ end
14
+
15
+ @hypenated_name = @name.gsub(/_/, '-')
16
+ end
17
+
18
+ def manifest
19
+ record do |m|
20
+ # Ensure appropriate folder(s) exists
21
+ m.directory '_layouts'
22
+ m.directory 'css'
23
+
24
+ m.template_copy_each ["default.html", "post.html"], "_layouts"
25
+ m.template_copy_each ["stylesheet.css"], "css"
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,14 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ module JekyllGenerator
5
+ VERSION = '1.0.0'
6
+ end
7
+
8
+ begin
9
+ require 'rubigen'
10
+ rescue LoadError
11
+ require 'rubygems'
12
+ require 'rubigen'
13
+ end
14
+ require 'jekyll_generator/theme_generator_base'
data/script/console ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+ # File: script/console
3
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
+
5
+ libs = " -r irb/completion"
6
+ # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
+ # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
+ libs << " -r #{File.dirname(__FILE__) + '/../lib/jekyll_generator.rb'}"
9
+ puts "Loading jekyll_generator gem"
10
+ exec "#{irb} #{libs} --simple-prompt"
data/script/destroy ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/destroy'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Destroy.new.run(ARGV)
data/script/generate ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/generate'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Generate.new.run(ARGV)
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ # Time to add your specs!
4
+ # http://rspec.info/
5
+ describe "Place your specs here" do
6
+
7
+ it "find this spec in spec directory" do
8
+ violated "Be sure to write your specs"
9
+ end
10
+
11
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,10 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+
9
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
10
+ require 'jekyll_generator'
data/tasks/rspec.rake ADDED
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ require 'spec'
6
+ end
7
+ begin
8
+ require 'spec/rake/spectask'
9
+ rescue LoadError
10
+ puts <<-EOS
11
+ To use rspec for testing you must install rspec gem:
12
+ gem install rspec
13
+ EOS
14
+ exit(0)
15
+ end
16
+
17
+ desc "Run the specs under spec/models"
18
+ Spec::Rake::SpecTask.new do |t|
19
+ t.spec_opts = ['--options', "spec/spec.opts"]
20
+ t.spec_files = FileList['spec/**/*_spec.rb']
21
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll_generator
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Dr Nic Williams
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-21 00:00:00 +10:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rubigen
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.4.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: newgem
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.2.1
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: hoe
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.8.0
44
+ version:
45
+ description: A nice generator for a Jekyll website including Disqus comments integration. Probably tightly integrated to github and Github Pages. Will be relaxed later.
46
+ email:
47
+ - drnicwilliams@gmail.com
48
+ executables:
49
+ - jekyll_generator
50
+ extensions: []
51
+
52
+ extra_rdoc_files:
53
+ - History.txt
54
+ - Manifest.txt
55
+ - PostInstall.txt
56
+ - README.rdoc
57
+ files:
58
+ - History.txt
59
+ - Manifest.txt
60
+ - PostInstall.txt
61
+ - README.rdoc
62
+ - Rakefile
63
+ - app_generators/jekyll_generator/USAGE
64
+ - app_generators/jekyll_generator/jekyll_generator_generator.rb
65
+ - app_generators/jekyll_generator/templates/atom.xml
66
+ - app_generators/jekyll_generator/templates/config.yml
67
+ - app_generators/jekyll_generator/templates/index.markdown
68
+ - bin/jekyll_generator
69
+ - features/development.feature
70
+ - features/jekyll.feature
71
+ - features/steps/common.rb
72
+ - features/steps/env.rb
73
+ - features/steps/jekyll.rb
74
+ - jekyll_generators/plain_theme/plain_theme_generator.rb
75
+ - jekyll_generators/plain_theme/templates/_layouts/default.html
76
+ - jekyll_generators/plain_theme/templates/_layouts/post.html
77
+ - jekyll_generators/plain_theme/templates/css/stylesheet.css
78
+ - jekyll_generators/textmate_theme/templates/_layouts/default.html
79
+ - jekyll_generators/textmate_theme/templates/_layouts/post.html
80
+ - jekyll_generators/textmate_theme/templates/css/macromates.css
81
+ - jekyll_generators/textmate_theme/textmate_theme_generator.rb
82
+ - lib/jekyll_generator.rb
83
+ - lib/jekyll_generator/theme_generator_base.rb
84
+ - script/console
85
+ - script/destroy
86
+ - script/generate
87
+ - spec/jekyll_generator_spec.rb
88
+ - spec/spec.opts
89
+ - spec/spec_helper.rb
90
+ - tasks/rspec.rake
91
+ has_rdoc: true
92
+ homepage: http://drnic.github.com/jekyll_generator
93
+ post_install_message: PostInstall.txt
94
+ rdoc_options:
95
+ - --main
96
+ - README.rdoc
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ version:
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: "0"
110
+ version:
111
+ requirements: []
112
+
113
+ rubyforge_project: drnicutilities
114
+ rubygems_version: 1.3.1
115
+ signing_key:
116
+ specification_version: 2
117
+ summary: A nice generator for a Jekyll website including Disqus comments integration
118
+ test_files: []
119
+