pith 0.3.1 → 0.3.2

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.
data/README.markdown CHANGED
@@ -214,6 +214,52 @@ For even quicker prototyping, Pith includes a simple HTTP server. Start it by u
214
214
 
215
215
  Pith will incrementally re-build the site as you browse -- that is, if you alter any input files, Pith will regenerate the affected outputs.
216
216
 
217
+ Plugins
218
+ -------
219
+
220
+ Pith includes a couple of optional "plugins". Actually, "plugin" is a bit strong: they're just plain old Ruby modules that extend Pith's functionality.
221
+
222
+ ### Publication plugin
223
+
224
+ The 'publication' plugin makes it easier to build a weblog using Pith.
225
+
226
+ Enable it by requiring it in your "`config.rb`", like so:
227
+
228
+ require "pith/plugins/publication"
229
+
230
+ Now you can specify a "published" date/time in the metadata of any pages you consider to be "articles", e.g.
231
+
232
+ ---
233
+ title: Introducing ShamRack
234
+ published: 3-July-2009, 15:50
235
+ ...
236
+
237
+ This exposes "`page.published_at`" for use in your templates.
238
+
239
+ In addition, "`project.published_inputs`" lists all the pages that have such a timestamp, in order of publication, making it easy to build index pages and XML feeds. Here's a example, used to build the article index for [dogbiscuit.org](http://dogbiscuit.org/mdub/weblog):
240
+
241
+ %ul.articles
242
+ - project.published_inputs.reverse.each do |entry|
243
+ %li
244
+ %p
245
+ = link(entry)
246
+ %span.teaser
247
+ %span.published_at
248
+ on
249
+ = entry.published_at.strftime("%e %b, %Y")
250
+
251
+ ### Compass plugin
252
+
253
+ The Compass plugin gives you the full power of [Compass][compass] in your Sass stylesheets. Enable it by requiring it in your "`config.rb`":
254
+
255
+ require "pith/plugins/compass"
256
+
257
+ Note that if you're using Bundler, you'll also need to include the Compass gem in your `Gemfile`.
258
+
259
+ gem "compass"
260
+
217
261
  [tilt]: http://github.com/rtomayko/tilt/
218
262
  [haml]: http://haml-lang.com
219
263
  [sass]: http://sass-lang.com
264
+ [compass]: http://compass-style.org
265
+
@@ -0,0 +1,38 @@
1
+ Feature: Compass integration
2
+
3
+ I want to integrate Compass
4
+ So that I can use it inside a layout
5
+
6
+ Background:
7
+
8
+ Given input file "_pith/config.rb" contains
9
+ """
10
+ require 'pith/plugins/compass'
11
+ """
12
+
13
+ Scenario: Sass template
14
+
15
+ Given input file "style.css.sass" contains
16
+ """
17
+ @import "compass/typography/links/hover-link"
18
+
19
+ a.mylink
20
+ @include hover-link
21
+ """
22
+
23
+ When I build the site
24
+ Then output file "style.css" should contain /a.mylink { text-decoration: none; }/
25
+
26
+ Scenario: Scss template
27
+
28
+ Given input file "style.css.scss" contains
29
+ """
30
+ @import "compass/typography/links/hover-link";
31
+
32
+ a.mylink {
33
+ @include hover-link;
34
+ }
35
+ """
36
+
37
+ When I build the site
38
+ Then output file "style.css" should contain /a.mylink { text-decoration: none; }/
@@ -7,11 +7,11 @@ Given /^input file "([^\"]*)" contains$/ do |path, content|
7
7
  end
8
8
 
9
9
  Given /^input file "([^\"]*)" exists$/ do |path|
10
- Given %{input file "#{path}" contains "something"}
10
+ step %{input file "#{path}" contains "something"}
11
11
  end
12
12
 
13
13
  Given "the site is up-to-date" do
14
- When "I build the site"
14
+ step "I build the site"
15
15
  end
16
16
 
17
17
  Given /^the config file contains$/ do |content|
data/lib/pith/config.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'set'
2
+
1
3
  module Pith
2
4
 
3
5
  class Config
@@ -0,0 +1,28 @@
1
+ require "compass"
2
+ require "tilt/css"
3
+
4
+ module Pith
5
+ module Compass
6
+
7
+ module Initialize
8
+
9
+ def initialize(file=nil, line=1, options={}, &block)
10
+ options = options.merge(::Compass.sass_engine_options)
11
+ super(file, line, options, &block)
12
+ end
13
+
14
+ end
15
+
16
+ class SassTemplate < Tilt::SassTemplate
17
+ include Initialize
18
+ end
19
+
20
+ class ScssTemplate < Tilt::ScssTemplate
21
+ include Initialize
22
+ end
23
+
24
+ end
25
+ end
26
+
27
+ Tilt.register Pith::Compass::SassTemplate, 'sass'
28
+ Tilt.register Pith::Compass::ScssTemplate, 'scss'
data/lib/pith/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pith
2
- VERSION = "0.3.1".freeze
2
+ VERSION = "0.3.2".freeze
3
3
  end
metadata CHANGED
@@ -1,75 +1,75 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pith
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
5
4
  prerelease:
5
+ version: 0.3.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Mike Williams
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-16 00:00:00.000000000 Z
12
+ date: 2013-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: tilt
16
- requirement: !ruby/object:Gem::Requirement
15
+ type: :runtime
16
+ version_requirements: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '1.3'
22
- type: :runtime
22
+ name: tilt
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '1.3'
30
30
  - !ruby/object:Gem::Dependency
31
- name: rack
32
- requirement: !ruby/object:Gem::Requirement
31
+ type: :runtime
32
+ version_requirements: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
37
  version: 1.2.1
38
- type: :runtime
38
+ name: rack
39
39
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
40
+ requirement: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: 1.2.1
46
46
  - !ruby/object:Gem::Dependency
47
- name: thin
48
- requirement: !ruby/object:Gem::Requirement
47
+ type: :runtime
48
+ version_requirements: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
51
  - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
53
  version: 1.2.7
54
- type: :runtime
54
+ name: thin
55
55
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
56
+ requirement: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.2.7
62
62
  - !ruby/object:Gem::Dependency
63
- name: clamp
64
- requirement: !ruby/object:Gem::Requirement
63
+ type: :runtime
64
+ version_requirements: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
67
  - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: 0.3.0
70
- type: :runtime
70
+ name: clamp
71
71
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
72
+ requirement: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -96,6 +96,7 @@ files:
96
96
  - lib/pith/output.rb
97
97
  - lib/pith/pathname_ext.rb
98
98
  - lib/pith/pathname_ext.rb~
99
+ - lib/pith/plugins/compass.rb
99
100
  - lib/pith/plugins/publication/input.rb
100
101
  - lib/pith/plugins/publication/input.rb~
101
102
  - lib/pith/plugins/publication/project.rb
@@ -131,6 +132,7 @@ files:
131
132
  - spec/pith/server_spec.rb
132
133
  - spec/spec_helper.rb
133
134
  - features/cleanup.feature
135
+ - features/compass.feature
134
136
  - features/content_for.feature
135
137
  - features/content_for.feature~
136
138
  - features/error_handling.feature
@@ -164,8 +166,7 @@ files:
164
166
  - features/textile.feature~
165
167
  - features/verbatim.feature~
166
168
  - cucumber.yml
167
- - !binary |-
168
- YmluL3BpdGg=
169
+ - bin/pith
169
170
  homepage: http://github.com/mdub/pith
170
171
  licenses: []
171
172
  post_install_message:
@@ -177,22 +178,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
178
  requirements:
178
179
  - - ! '>='
179
180
  - !ruby/object:Gem::Version
180
- version: '0'
181
181
  segments:
182
182
  - 0
183
- hash: 1629984080237938528
183
+ hash: -4121132495916590095
184
+ version: '0'
184
185
  required_rubygems_version: !ruby/object:Gem::Requirement
185
186
  none: false
186
187
  requirements:
187
188
  - - ! '>='
188
189
  - !ruby/object:Gem::Version
189
- version: '0'
190
190
  segments:
191
191
  - 0
192
- hash: 1629984080237938528
192
+ hash: -4121132495916590095
193
+ version: '0'
193
194
  requirements: []
194
195
  rubyforge_project:
195
- rubygems_version: 1.8.21
196
+ rubygems_version: 1.8.24
196
197
  signing_key:
197
198
  specification_version: 3
198
199
  summary: A static website generator
@@ -206,6 +207,7 @@ test_files:
206
207
  - spec/pith/server_spec.rb
207
208
  - spec/spec_helper.rb
208
209
  - features/cleanup.feature
210
+ - features/compass.feature
209
211
  - features/content_for.feature
210
212
  - features/content_for.feature~
211
213
  - features/error_handling.feature