brite 0.5 → 0.6.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 (79) hide show
  1. data/HISTORY.rdoc +30 -0
  2. data/LICENSE +199 -17
  3. data/README.rdoc +61 -0
  4. data/Syckfile +76 -0
  5. data/bin/brite +3 -3
  6. data/bin/brite-server +4 -0
  7. data/lib/brite.rb +11 -0
  8. data/lib/brite/command.rb +53 -56
  9. data/lib/brite/config.rb +94 -18
  10. data/lib/brite/controller.rb +181 -0
  11. data/lib/brite/layout.rb +24 -19
  12. data/lib/brite/meta/data.rb +26 -0
  13. data/lib/brite/meta/package +8 -0
  14. data/lib/brite/meta/profile +19 -0
  15. data/lib/brite/models/model.rb +97 -0
  16. data/lib/brite/models/page.rb +142 -0
  17. data/lib/brite/models/post.rb +9 -0
  18. data/lib/brite/models/site.rb +46 -0
  19. data/lib/brite/rackup.rb +6 -0
  20. data/lib/brite/server.rb +144 -0
  21. data/lib/plugins/sow/brite/awesome/Sowfile +11 -0
  22. data/lib/plugins/sow/brite/awesome/about.page +28 -0
  23. data/lib/plugins/sow/brite/awesome/assets/custom.less +96 -0
  24. data/lib/plugins/sow/brite/awesome/assets/fade.png +0 -0
  25. data/lib/plugins/sow/brite/awesome/assets/highlight.css +96 -0
  26. data/lib/plugins/sow/brite/awesome/assets/highlight.js +1 -0
  27. data/lib/plugins/sow/brite/awesome/assets/jquery.js +19 -0
  28. data/lib/plugins/sow/brite/awesome/assets/jquery.tabs.js +1 -0
  29. data/lib/plugins/sow/brite/awesome/assets/reset.css +57 -0
  30. data/lib/plugins/sow/brite/awesome/assets/ruby.png +0 -0
  31. data/lib/plugins/sow/brite/awesome/brite.yaml +3 -0
  32. data/lib/plugins/sow/brite/awesome/history.page +15 -0
  33. data/lib/plugins/sow/brite/awesome/index.page +18 -0
  34. data/lib/plugins/sow/brite/awesome/legal.page +28 -0
  35. data/lib/plugins/sow/brite/awesome/logs.page +14 -0
  36. data/lib/plugins/sow/brite/awesome/page.layout +75 -0
  37. data/lib/plugins/sow/brite/blog1/.rsync-filter +12 -0
  38. data/lib/plugins/sow/brite/blog1/2011/01/sample.html +293 -0
  39. data/lib/plugins/sow/brite/blog1/2011/01/sample.post +44 -0
  40. data/lib/plugins/sow/brite/blog1/Sowfile +10 -0
  41. data/lib/plugins/sow/brite/blog1/assets/images/bg.jpg +0 -0
  42. data/lib/plugins/sow/brite/blog1/assets/images/icon.jpg +0 -0
  43. data/lib/plugins/sow/brite/blog1/assets/styles/class.css +15 -0
  44. data/lib/plugins/sow/brite/blog1/assets/styles/id.css +85 -0
  45. data/lib/plugins/sow/brite/blog1/assets/styles/misc.css +0 -0
  46. data/lib/plugins/sow/brite/blog1/assets/styles/print.css +76 -0
  47. data/lib/plugins/sow/brite/blog1/assets/styles/reset.css +77 -0
  48. data/lib/plugins/sow/brite/blog1/assets/styles/tag.css +68 -0
  49. data/lib/plugins/sow/brite/blog1/brite.yml +3 -0
  50. data/lib/plugins/sow/brite/blog1/index.page +23 -0
  51. data/lib/plugins/sow/brite/blog1/page.layout +88 -0
  52. data/lib/plugins/sow/brite/blog1/post.layout +25 -0
  53. data/meta/data.rb +26 -0
  54. data/meta/package +8 -0
  55. data/meta/profile +19 -0
  56. metadata +86 -47
  57. data/HISTORY +0 -16
  58. data/MANIFEST +0 -28
  59. data/README +0 -42
  60. data/lib/brite/page.rb +0 -235
  61. data/lib/brite/part.rb +0 -31
  62. data/lib/brite/post.rb +0 -37
  63. data/lib/brite/site.rb +0 -137
  64. data/lib/brite/template.rb +0 -215
  65. data/meta/authors +0 -1
  66. data/meta/contact +0 -1
  67. data/meta/copyright +0 -1
  68. data/meta/description +0 -4
  69. data/meta/homepage +0 -1
  70. data/meta/license +0 -1
  71. data/meta/name +0 -1
  72. data/meta/repository +0 -1
  73. data/meta/requires +0 -1
  74. data/meta/ruby +0 -2
  75. data/meta/subtitle +0 -1
  76. data/meta/suite +0 -1
  77. data/meta/summary +0 -1
  78. data/meta/title +0 -1
  79. data/meta/version +0 -1
@@ -0,0 +1,25 @@
1
+ ---
2
+ stencil: liquid
3
+ layout: page
4
+
5
+ --- html
6
+
7
+ <div class="page">
8
+
9
+ <h1>{{ page.title }}</h1>
10
+
11
+ {{ content }}
12
+
13
+ <small>Written by {{ page.author }}, {{ page.date | date_to_string }}</small>
14
+
15
+ <ul class="posts">
16
+ {% assign p = page.previous %}{% if p %}
17
+ <li><span>Previous: {{ p.date | date_to_string }}</span> &raquo; <a href="{{ p.url }}">{{ p.title }}</a></li>
18
+ {% endif %}
19
+ {% assign p = page.next %}{% if p %}
20
+ <li><span> Next: {{ p.date | date_to_string }}</span> &raquo; <a href="{{ p.url }}">{{ p.title }}</a></li>
21
+ {% endif %}
22
+ </ul>
23
+
24
+ </div>
25
+
data/meta/data.rb ADDED
@@ -0,0 +1,26 @@
1
+ module Brite
2
+
3
+ def self.package
4
+ @package ||= (
5
+ require 'yaml'
6
+ YAML.load(File.new(File.dirname(__FILE__) + '/package'))
7
+ )
8
+ end
9
+
10
+ def self.profile
11
+ @profile ||= (
12
+ require 'yaml'
13
+ YAML.load(File.new(File.dirname(__FILE__) + '/profile'))
14
+ )
15
+ end
16
+
17
+ def self.const_missing(name)
18
+ key = name.to_s.downcase
19
+ package[key] || profile[key] || super(name)
20
+ end
21
+
22
+ end
23
+
24
+ # becuase Ruby 1.8~ gets in the way
25
+ Object.__send__(:remove_const, :VERSION) if Object.const_defined?(:VERSION)
26
+
data/meta/package ADDED
@@ -0,0 +1,8 @@
1
+ ---
2
+ name : brite
3
+ date : 2010-11-12
4
+ version : 0.6.0
5
+
6
+ requires:
7
+ - neapolitan 0.3.0+
8
+
data/meta/profile ADDED
@@ -0,0 +1,19 @@
1
+ ---
2
+ title : Brite
3
+ subtitle : Light Up Your Site
4
+ summary : Super Simple Static Site Generation
5
+ copyright: Copyright (c) 2006,2009 Thomas Sawyer
6
+ license : Apache v2.0
7
+ suite : proutils
8
+ contact : http://googlegroups.com/group/proutils
9
+ authors : Thomas Sawyer
10
+
11
+ description:
12
+ Brite is a remarkably easy to use, light-weight website
13
+ generator. It supports a variety of backend rendering engines
14
+ including rhtml via eruby, textile via redcloth, markdown
15
+ via rdiscount, with others on the way.
16
+
17
+ resources:
18
+ homepage: http://proutils.github.com/brite
19
+ repository: git://github.com/proutils/brite.git
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brite
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.5"
4
+ hash: 7
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 6
9
+ - 0
10
+ version: 0.6.0
5
11
  platform: ruby
6
12
  authors:
7
13
  - Thomas Sawyer
@@ -9,91 +15,124 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-11-17 00:00:00 -05:00
18
+ date: 2010-11-12 00:00:00 -05:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
- name: tilt
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ name: neapolitan
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
25
- description: |-
26
- Brite is a remarkably easy to use, light-weight website
27
- generator. It supports a variety of backend rendering engines
28
- including rhtml via eruby, textile via redcloth, markdown
29
- via rdiscount, with others on the way.
30
- email: http://googlegroups.com/group/proutils
29
+ hash: 19
30
+ segments:
31
+ - 0
32
+ - 3
33
+ - 0
34
+ version: 0.3.0
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ description: Brite is a remarkably easy to use, light-weight website generator. It supports a variety of backend rendering engines including rhtml via eruby, textile via redcloth, markdown via rdiscount, with others on the way.
38
+ email: ""
31
39
  executables:
40
+ - brite-server
32
41
  - brite
33
42
  extensions: []
34
43
 
35
44
  extra_rdoc_files:
36
- - README
37
- - MANIFEST
38
- - LICENSE
39
- - HISTORY
45
+ - README.rdoc
40
46
  files:
41
47
  - bin/brite
48
+ - bin/brite-server
42
49
  - lib/brite/command.rb
43
50
  - lib/brite/config.rb
51
+ - lib/brite/controller.rb
44
52
  - lib/brite/layout.rb
45
- - lib/brite/page.rb
46
- - lib/brite/part.rb
47
- - lib/brite/post.rb
48
- - lib/brite/site.rb
49
- - lib/brite/template.rb
50
- - meta/authors
51
- - meta/contact
52
- - meta/copyright
53
- - meta/description
54
- - meta/homepage
55
- - meta/license
56
- - meta/name
57
- - meta/repository
58
- - meta/requires
59
- - meta/ruby
60
- - meta/subtitle
61
- - meta/suite
62
- - meta/summary
63
- - meta/title
64
- - meta/version
53
+ - lib/brite/meta/data.rb
54
+ - lib/brite/meta/package
55
+ - lib/brite/meta/profile
56
+ - lib/brite/models/model.rb
57
+ - lib/brite/models/page.rb
58
+ - lib/brite/models/post.rb
59
+ - lib/brite/models/site.rb
60
+ - lib/brite/rackup.rb
61
+ - lib/brite/server.rb
62
+ - lib/brite.rb
63
+ - lib/plugins/sow/brite/awesome/Sowfile
64
+ - lib/plugins/sow/brite/awesome/about.page
65
+ - lib/plugins/sow/brite/awesome/assets/custom.less
66
+ - lib/plugins/sow/brite/awesome/assets/fade.png
67
+ - lib/plugins/sow/brite/awesome/assets/highlight.css
68
+ - lib/plugins/sow/brite/awesome/assets/highlight.js
69
+ - lib/plugins/sow/brite/awesome/assets/jquery.js
70
+ - lib/plugins/sow/brite/awesome/assets/jquery.tabs.js
71
+ - lib/plugins/sow/brite/awesome/assets/reset.css
72
+ - lib/plugins/sow/brite/awesome/assets/ruby.png
73
+ - lib/plugins/sow/brite/awesome/brite.yaml
74
+ - lib/plugins/sow/brite/awesome/history.page
75
+ - lib/plugins/sow/brite/awesome/index.page
76
+ - lib/plugins/sow/brite/awesome/legal.page
77
+ - lib/plugins/sow/brite/awesome/logs.page
78
+ - lib/plugins/sow/brite/awesome/page.layout
79
+ - lib/plugins/sow/brite/blog1/.rsync-filter
80
+ - lib/plugins/sow/brite/blog1/2011/01/sample.html
81
+ - lib/plugins/sow/brite/blog1/2011/01/sample.post
82
+ - lib/plugins/sow/brite/blog1/Sowfile
83
+ - lib/plugins/sow/brite/blog1/assets/images/bg.jpg
84
+ - lib/plugins/sow/brite/blog1/assets/images/icon.jpg
85
+ - lib/plugins/sow/brite/blog1/assets/styles/class.css
86
+ - lib/plugins/sow/brite/blog1/assets/styles/id.css
87
+ - lib/plugins/sow/brite/blog1/assets/styles/misc.css
88
+ - lib/plugins/sow/brite/blog1/assets/styles/print.css
89
+ - lib/plugins/sow/brite/blog1/assets/styles/reset.css
90
+ - lib/plugins/sow/brite/blog1/assets/styles/tag.css
91
+ - lib/plugins/sow/brite/blog1/brite.yml
92
+ - lib/plugins/sow/brite/blog1/index.page
93
+ - lib/plugins/sow/brite/blog1/page.layout
94
+ - lib/plugins/sow/brite/blog1/post.layout
95
+ - meta/data.rb
96
+ - meta/package
97
+ - meta/profile
98
+ - HISTORY.rdoc
65
99
  - LICENSE
66
- - README
67
- - HISTORY
68
- - MANIFEST
100
+ - README.rdoc
101
+ - Syckfile
69
102
  has_rdoc: true
70
103
  homepage: http://proutils.github.com/brite
71
- licenses: []
72
-
104
+ licenses:
105
+ - Apache v2.0
73
106
  post_install_message:
74
107
  rdoc_options:
75
108
  - --title
76
109
  - Brite API
77
110
  - --main
78
- - README
111
+ - README.rdoc
79
112
  require_paths:
80
113
  - lib
81
114
  required_ruby_version: !ruby/object:Gem::Requirement
115
+ none: false
82
116
  requirements:
83
117
  - - ">="
84
118
  - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
85
122
  version: "0"
86
- version:
87
123
  required_rubygems_version: !ruby/object:Gem::Requirement
124
+ none: false
88
125
  requirements:
89
126
  - - ">="
90
127
  - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
91
131
  version: "0"
92
- version:
93
132
  requirements: []
94
133
 
95
134
  rubyforge_project: brite
96
- rubygems_version: 1.3.5
135
+ rubygems_version: 1.3.7
97
136
  signing_key:
98
137
  specification_version: 3
99
138
  summary: Super Simple Static Site Generation
data/HISTORY DELETED
@@ -1,16 +0,0 @@
1
- = RELEASE HISTORY
2
-
3
- == 0.5 / 2008-10-25
4
-
5
- Brite (formerly Webrite) has been completely rewritten from the ground-up,
6
- applying a number of ideas gathered from other systems and adding further
7
- innovations. This is still an early release, and in need of features
8
- and overt tire-kicking, but hey I'm already using to generate a pretty
9
- damn nice looking site.
10
-
11
- Changes:
12
-
13
- * 1 Monumentously Important Enhancment
14
-
15
- * Happy Rebirthday!
16
-
data/MANIFEST DELETED
@@ -1,28 +0,0 @@
1
- #!mast bin lib meta test [A-Z]*
2
- bin/brite
3
- lib/brite/command.rb
4
- lib/brite/config.rb
5
- lib/brite/layout.rb
6
- lib/brite/page.rb
7
- lib/brite/part.rb
8
- lib/brite/post.rb
9
- lib/brite/site.rb
10
- lib/brite/template.rb
11
- meta/authors
12
- meta/contact
13
- meta/copyright
14
- meta/description
15
- meta/homepage
16
- meta/license
17
- meta/name
18
- meta/repository
19
- meta/requires
20
- meta/ruby
21
- meta/subtitle
22
- meta/suite
23
- meta/summary
24
- meta/title
25
- meta/version
26
- LICENSE
27
- README
28
- HISTORY
data/README DELETED
@@ -1,42 +0,0 @@
1
- = Brite
2
-
3
- (The BrightLite of Static Website Generators)
4
-
5
- * home: http://proutils.github.com/brite
6
- * source: http://github.com/proutils/brite
7
-
8
-
9
- == DESCRIPTION
10
-
11
- Brite is an inovative static website/blog generation utility
12
- which is extremely easy to use as it is versitle.
13
-
14
- == FEATURES/ISSUES
15
-
16
- * Awesome
17
- * Extra Cool
18
- * And Dyn-o-mite!
19
-
20
-
21
- == SYNOPSIS
22
-
23
- For now please see the Brite website and API documentation.
24
-
25
-
26
- == HOW TO INSTALL
27
-
28
- You know the routine ;)
29
-
30
- $ sudop gem install brite
31
-
32
- If you're old fashion and want to install to a site
33
- location, see Setup.rb (http://protuils.github.com/setup).
34
-
35
-
36
- == COPYRIGHT/LICENSE
37
-
38
- Brite is Copyright (c) 2009 Thomas Sawyer
39
-
40
- It is distributed under the terms of the MIT license.
41
-
42
-
data/lib/brite/page.rb DELETED
@@ -1,235 +0,0 @@
1
- require 'brite/part'
2
-
3
- module Brite
4
-
5
- # Page class
6
- class Page
7
-
8
- attr :file
9
-
10
- # Template type (rhtml or liquid)
11
- attr :stencil
12
-
13
- # Layout name (relative filename less extension)
14
- attr :layout
15
-
16
- # Author
17
- attr :author
18
-
19
- # Title of page/post
20
- attr :title
21
-
22
- # Publish date
23
- attr :date
24
-
25
- # Tags (labels)
26
- attr :tags
27
-
28
- # Category ("a glorified tag")
29
- attr :category
30
-
31
- # rendered output text
32
- attr :content
33
-
34
- # output extension (defualt is 'html')
35
- attr :extension
36
-
37
- #
38
- def initialize(site, file)
39
- @site = site
40
- @file = file
41
- @parts = []
42
- parse
43
- end
44
-
45
- def name
46
- @name ||= file.chomp(File.extname(file))
47
- end
48
-
49
- #
50
- def url
51
- @url ||= name + extension
52
- end
53
-
54
- #
55
- def extension
56
- @extension ||= '.html'
57
- end
58
-
59
- #
60
- def root
61
- '../' * file.count('/')
62
- end
63
-
64
- # TODO
65
- #def next
66
- # self
67
- #end
68
-
69
- # TODO
70
- #def previous
71
- # self
72
- #end
73
-
74
- #
75
- def to_h
76
- {
77
- 'url' => url,
78
- 'author' => author,
79
- 'title' => title,
80
- 'date' => date,
81
- 'tags' => tags,
82
- 'category' => category,
83
- 'content' => content
84
- }
85
- end
86
-
87
- #
88
- def save(output=nil)
89
- output ||= Dir.pwd # TODO
90
- text = render
91
- fname = file.chomp(File.extname(file)) + extension
92
- if dryrun
93
- puts "[DRYRUN] write #{fname}"
94
- else
95
- puts "write #{fname}"
96
- File.open(fname, 'w'){ |f| f << text }
97
- end
98
- end
99
-
100
- def to_contextual_attributes
101
- { 'site'=>site.to_h, 'page'=>to_h, 'root'=>root }
102
- end
103
-
104
- #
105
- def to_liquid
106
- to_contextual_attributes
107
- end
108
-
109
- protected
110
-
111
- # TODO: Should validate front matter before anything processing.
112
- #
113
- def render(inherit={})
114
- attributes = to_contextual_attributes
115
-
116
- attributes = attributes.merge(inherit)
117
-
118
- #attributes['content'] = content if content
119
-
120
- output = parts.map{ |part| part.render(stencil, attributes) }.join("\n")
121
-
122
- @content = output
123
-
124
- attributes = attributes.merge('content'=>output)
125
- if layout
126
- renout = site.lookup_layout(layout)
127
- raise "No such layout -- #{layout}" unless renout
128
- output = renout.render(attributes)
129
- end
130
-
131
- output
132
- end
133
-
134
- private
135
-
136
- #
137
- def site
138
- @site
139
- end
140
-
141
- #
142
- def parts
143
- @parts
144
- end
145
-
146
- #
147
- def dryrun
148
- site.dryrun
149
- end
150
-
151
- #
152
- def parse
153
- hold = []
154
- text = File.read(file)
155
- sect = text.split(/^\-\-\-/)
156
-
157
- if sect.size == 1
158
- @prop = {}
159
- @parts << Part.new(sect[0], site.defaults.format)
160
- else
161
- void = sect.shift
162
- head = sect.shift
163
- head = YAML::load(head)
164
-
165
- parse_header(head)
166
-
167
- sect.each do |body|
168
- index = body.index("\n")
169
- format = body[0...index].strip
170
- format = site.defaults.format if format.empty?
171
- text = body[index+1..-1]
172
- @parts << Part.new(text, format)
173
- end
174
- end
175
-
176
- end
177
-
178
- #
179
- def parse_header(head)
180
- @stencil = head['stencil'] || site.defaults.stencil
181
- @author = head['author'] || 'Anonymous'
182
- @title = head['title']
183
- @date = head['date']
184
- @category = head['category']
185
- @extension = head['extension']
186
-
187
- self.tags = head['tags']
188
- self.layout = head['layout']
189
- end
190
-
191
- def layout=(layout)
192
- if FalseClass === layout
193
- @layout = nil
194
- else
195
- @layout = layout || default_layout
196
- end
197
- end
198
-
199
- #
200
- def tags=(entry)
201
- return entry unless entry
202
- case entry
203
- when String, Symbol
204
- entry = entry.to_s.strip
205
- if entry.index(/[,;]/)
206
- entry = entry.split(/[,;]/)
207
- else
208
- entry = entry.split(/\s+/)
209
- end
210
- else
211
- entry = entry.to_a.flatten
212
- end
213
- @tags = entry.map{ |e| e.strip }
214
- end
215
-
216
- # Default layout is different for pages vs. posts, so we
217
- # use this method to differntiation them.
218
- def default_layout
219
- site.defaults.pagelayout
220
- end
221
-
222
- public
223
-
224
- def to_s
225
- file
226
- end
227
-
228
- def inspect
229
- "<#{self.class}: #{file}>"
230
- end
231
-
232
- end
233
-
234
- end
235
-