nesta 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +13 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +58 -0
- data/LICENSE +19 -0
- data/README.md +45 -0
- data/Rakefile +12 -0
- data/bin/nesta +67 -0
- data/config.ru +9 -0
- data/config/config.yml.sample +73 -0
- data/config/deploy.rb.sample +62 -0
- data/lib/nesta/app.rb +199 -0
- data/lib/nesta/cache.rb +139 -0
- data/lib/nesta/commands.rb +135 -0
- data/lib/nesta/config.rb +87 -0
- data/lib/nesta/models.rb +313 -0
- data/lib/nesta/nesta.rb +0 -0
- data/lib/nesta/overrides.rb +59 -0
- data/lib/nesta/path.rb +11 -0
- data/lib/nesta/plugins.rb +15 -0
- data/lib/nesta/version.rb +3 -0
- data/nesta.gemspec +49 -0
- data/scripts/import-from-mephisto +207 -0
- data/spec/atom_spec.rb +138 -0
- data/spec/commands_spec.rb +220 -0
- data/spec/config_spec.rb +69 -0
- data/spec/model_factory.rb +94 -0
- data/spec/models_spec.rb +445 -0
- data/spec/overrides_spec.rb +113 -0
- data/spec/page_spec.rb +428 -0
- data/spec/path_spec.rb +28 -0
- data/spec/sitemap_spec.rb +102 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +72 -0
- data/templates/Gemfile +8 -0
- data/templates/Rakefile +35 -0
- data/templates/config.ru +9 -0
- data/templates/config/config.yml +73 -0
- data/templates/config/deploy.rb +47 -0
- data/views/analytics.haml +12 -0
- data/views/atom.builder +28 -0
- data/views/categories.haml +3 -0
- data/views/comments.haml +8 -0
- data/views/error.haml +13 -0
- data/views/feed.haml +3 -0
- data/views/index.haml +5 -0
- data/views/layout.haml +27 -0
- data/views/master.sass +246 -0
- data/views/not_found.haml +13 -0
- data/views/page.haml +29 -0
- data/views/sidebar.haml +3 -0
- data/views/sitemap.builder +15 -0
- data/views/summaries.haml +14 -0
- metadata +302 -0
data/views/error.haml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
.breadcrumb
|
2
|
+
%a{ :href => "/" } Home
|
3
|
+
|
4
|
+
#content
|
5
|
+
%h1 Sorry, something went wrong
|
6
|
+
|
7
|
+
%p
|
8
|
+
An error occurred whilst we were trying to serve your page. Please bear
|
9
|
+
with us, or in the mean time, try another page.
|
10
|
+
|
11
|
+
#sidebar
|
12
|
+
= haml :categories, :layout => false
|
13
|
+
= haml :feed, :layout => false
|
data/views/feed.haml
ADDED
data/views/index.haml
ADDED
data/views/layout.haml
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
!!!
|
2
|
+
%html{ :lang => "en", "xml:lang" => "en", :xmlns => 'http://www.w3.org/1999/xhtml' }
|
3
|
+
%head
|
4
|
+
%meta{ "http-equiv" => "content-type", "content" => "text/html; charset=utf-8" }
|
5
|
+
- if @description
|
6
|
+
%meta{ "name" => "description", "content" => @description }
|
7
|
+
- if @keywords
|
8
|
+
%meta{ "name" => "keywords", "content" => @keywords }
|
9
|
+
%title= @title
|
10
|
+
%link{ :href => "/css/master.css", :media => "screen", :rel => "stylesheet", :type => "text/css" }
|
11
|
+
- if local_stylesheet?
|
12
|
+
%link{ :href => "/css/local.css", :media => "screen", :rel => "stylesheet", :type => "text/css" }
|
13
|
+
%link{ :href => "/articles.xml", :rel => "alternate", :type => "application/atom+xml" }
|
14
|
+
= haml :analytics, :layout => false
|
15
|
+
%body{ :class => @body_class }
|
16
|
+
#container
|
17
|
+
#header
|
18
|
+
%p.title= @heading
|
19
|
+
%p.subtitle= @subtitle
|
20
|
+
= yield
|
21
|
+
#footer
|
22
|
+
%p
|
23
|
+
Powered by
|
24
|
+
= succeed "," do
|
25
|
+
%a{ :href => "http://effectif.com/nesta" } nesta
|
26
|
+
designed by
|
27
|
+
%a{ :href => "http://effectif.com" } Graham Ashton
|
data/views/master.sass
ADDED
@@ -0,0 +1,246 @@
|
|
1
|
+
// Variables
|
2
|
+
|
3
|
+
$content-width: 37em
|
4
|
+
|
5
|
+
$tint: #D3D4D8
|
6
|
+
$base-color: $tint - #888
|
7
|
+
$dark-tint: $tint - #333
|
8
|
+
$background-tint: $tint + #222
|
9
|
+
$border-color: $tint + #111
|
10
|
+
|
11
|
+
$h1-scale: 2.18
|
12
|
+
$h2-scale: 1.64
|
13
|
+
$h3-scale: 1.45
|
14
|
+
$h4-scale: 1.18
|
15
|
+
|
16
|
+
// Reset
|
17
|
+
|
18
|
+
*
|
19
|
+
margin: 0
|
20
|
+
padding: 0
|
21
|
+
|
22
|
+
// Typography
|
23
|
+
|
24
|
+
$base-scale: 0.88
|
25
|
+
$base-font: $base-scale * 1em
|
26
|
+
$vertical-rhythm: 1.5em
|
27
|
+
$base-vertical-margin: 1.5em
|
28
|
+
|
29
|
+
@mixin adjust-font-size($scale, $top-weight: 1, $bottom-weight: 1)
|
30
|
+
$average-margin: $base-vertical-margin / $scale
|
31
|
+
margin-top: $average-margin * $top-weight
|
32
|
+
margin-bottom: $average-margin * $bottom-weight
|
33
|
+
|
34
|
+
$line-height: $vertical-rhythm / $scale
|
35
|
+
@if $line-height < 1
|
36
|
+
line-height: $line-height * 2
|
37
|
+
@else
|
38
|
+
line-height: $line-height
|
39
|
+
|
40
|
+
font-size: 100% * $scale
|
41
|
+
|
42
|
+
@mixin border-radius($radius)
|
43
|
+
-webkit-border-radius: $radius
|
44
|
+
-moz-border-radius: $radius
|
45
|
+
border-radius: $radius
|
46
|
+
|
47
|
+
body
|
48
|
+
font: $base-font "Helvetica Neue", Helvetica, sans-serif
|
49
|
+
line-height: $vertical-rhythm
|
50
|
+
color: $base-color
|
51
|
+
|
52
|
+
h1, h2, h3, h4, h5, h6
|
53
|
+
font-family: "Helvetica Neue", Helvetica, sans-serif
|
54
|
+
h1
|
55
|
+
@include adjust-font-size($h1-scale, 0.6, 0.4)
|
56
|
+
font-weight: normal
|
57
|
+
h2
|
58
|
+
@include adjust-font-size($h2-scale, 1.5, 0.5)
|
59
|
+
font-weight: normal
|
60
|
+
h3
|
61
|
+
@include adjust-font-size($h3-scale, 1.5, 0.5)
|
62
|
+
font-weight: normal
|
63
|
+
h4
|
64
|
+
@include adjust-font-size($h4-scale, 2, 0)
|
65
|
+
|
66
|
+
ol,
|
67
|
+
p,
|
68
|
+
pre,
|
69
|
+
ul
|
70
|
+
margin: 0
|
71
|
+
margin-bottom: $base-vertical-margin
|
72
|
+
|
73
|
+
li
|
74
|
+
@include adjust-font-size(1, 0, 0)
|
75
|
+
|
76
|
+
blockquote
|
77
|
+
margin: $base-vertical-margin 0
|
78
|
+
border-left: 0.5em solid $tint
|
79
|
+
padding-left: 1em
|
80
|
+
|
81
|
+
font-style: italic
|
82
|
+
|
83
|
+
pre
|
84
|
+
padding: ($vertical-rhythm / 2) 1em
|
85
|
+
overflow: auto
|
86
|
+
|
87
|
+
img
|
88
|
+
border: none
|
89
|
+
|
90
|
+
// Layout
|
91
|
+
|
92
|
+
div#container
|
93
|
+
width: 54em
|
94
|
+
margin: 0 auto
|
95
|
+
|
96
|
+
div#header
|
97
|
+
padding: 1em
|
98
|
+
|
99
|
+
div.breadcrumb
|
100
|
+
padding: 0.5em 1.1em
|
101
|
+
|
102
|
+
font-size: 0.909em
|
103
|
+
|
104
|
+
div#content
|
105
|
+
width: $content-width
|
106
|
+
float: left
|
107
|
+
padding: 1px 1em
|
108
|
+
|
109
|
+
div#sidebar
|
110
|
+
width: 12em
|
111
|
+
margin-left: 40em
|
112
|
+
padding: 1px 1em
|
113
|
+
|
114
|
+
div#footer
|
115
|
+
clear: both
|
116
|
+
padding: 0 1em
|
117
|
+
p
|
118
|
+
width: $content-width
|
119
|
+
margin: 0
|
120
|
+
padding: 1em 0
|
121
|
+
|
122
|
+
// The visuals
|
123
|
+
|
124
|
+
@mixin dark-tint-text
|
125
|
+
color: $dark-tint
|
126
|
+
text-shadow: 0 -1px 1px white
|
127
|
+
|
128
|
+
body
|
129
|
+
background: $background-tint
|
130
|
+
|
131
|
+
&.home h1
|
132
|
+
@include adjust-font-size($h1-scale, 1, -1)
|
133
|
+
|
134
|
+
div#header
|
135
|
+
p.title,
|
136
|
+
p.subtitle
|
137
|
+
margin: 0
|
138
|
+
line-height: 1.2em
|
139
|
+
font-weight: normal
|
140
|
+
p.title
|
141
|
+
font-size: 327%
|
142
|
+
text-shadow: -1px 2px 1px $tint
|
143
|
+
p.subtitle
|
144
|
+
font-size: 1em
|
145
|
+
@include dark-tint-text
|
146
|
+
|
147
|
+
div#content
|
148
|
+
position: relative
|
149
|
+
@include border-radius(0.5em)
|
150
|
+
background-color: white
|
151
|
+
|
152
|
+
div.date
|
153
|
+
position: absolute
|
154
|
+
right: 40em
|
155
|
+
top: $vertical-rhythm * 3
|
156
|
+
text-align: right
|
157
|
+
@include dark-tint-text
|
158
|
+
|
159
|
+
h2
|
160
|
+
background: $background-tint - #111
|
161
|
+
margin-left: (-2em / $h2-scale) * $base-scale
|
162
|
+
margin-right: 0
|
163
|
+
padding-left: 1em
|
164
|
+
padding-right: 1em
|
165
|
+
|
166
|
+
text-shadow: 0 1px 0 $tint + #333
|
167
|
+
|
168
|
+
ol,
|
169
|
+
ul
|
170
|
+
margin-left: 1.5em
|
171
|
+
|
172
|
+
img
|
173
|
+
max-width: 100%
|
174
|
+
margin-bottom: $base-vertical-margin
|
175
|
+
|
176
|
+
code,
|
177
|
+
pre
|
178
|
+
background-color: $background-tint
|
179
|
+
code
|
180
|
+
padding: 1px 3px
|
181
|
+
pre
|
182
|
+
border-left: 0.4em solid $border-color
|
183
|
+
code
|
184
|
+
padding: 0
|
185
|
+
|
186
|
+
// Pages/articles assigned to this page
|
187
|
+
ol.pages
|
188
|
+
margin-left: 0
|
189
|
+
li
|
190
|
+
position: relative
|
191
|
+
|
192
|
+
margin-left: -1.5em
|
193
|
+
padding-left: 1.5em
|
194
|
+
background-color: rgba(255, 255, 255, 0.8)
|
195
|
+
|
196
|
+
list-style: none
|
197
|
+
|
198
|
+
h2
|
199
|
+
margin-left: 0
|
200
|
+
margin-right: 0
|
201
|
+
padding: 0
|
202
|
+
background: none
|
203
|
+
|
204
|
+
div.date
|
205
|
+
top: $vertical-rhythm * 2.5
|
206
|
+
right: 39em
|
207
|
+
h3 + div.date
|
208
|
+
top: $vertical-rhythm * 1.5
|
209
|
+
|
210
|
+
p.read_more
|
211
|
+
@include adjust-font-size(0.909, 0, 0)
|
212
|
+
|
213
|
+
div.categories
|
214
|
+
margin-left: -1em
|
215
|
+
margin-right: -1em
|
216
|
+
border-top: 1px solid $background-tint - #0a0a0a
|
217
|
+
padding: 0.5em 1em
|
218
|
+
background: $background-tint
|
219
|
+
a
|
220
|
+
margin-right: 0.25em
|
221
|
+
|
222
|
+
div#disqus_thread
|
223
|
+
img
|
224
|
+
max-width: none
|
225
|
+
ul#dsq-comments
|
226
|
+
margin-left: 0
|
227
|
+
|
228
|
+
div#sidebar
|
229
|
+
@include border-radius(0.5em)
|
230
|
+
background-color: white
|
231
|
+
background-color: rgba(255, 255, 255, 0.9)
|
232
|
+
|
233
|
+
h2
|
234
|
+
@include adjust-font-size(1, 1.4, 0.6)
|
235
|
+
font-weight: bold
|
236
|
+
ul.menu
|
237
|
+
list-style: none
|
238
|
+
ul
|
239
|
+
list-style: disc
|
240
|
+
margin: 0 0 0 1.25em
|
241
|
+
& > ul
|
242
|
+
@include adjust-font-size(0.909, 0, 0)
|
243
|
+
|
244
|
+
div.feed,
|
245
|
+
div.social
|
246
|
+
margin: $base-vertical-margin 0
|
@@ -0,0 +1,13 @@
|
|
1
|
+
.breadcrumb
|
2
|
+
%a{ :href => "/" } Home
|
3
|
+
|
4
|
+
#content
|
5
|
+
%h1 Page not found
|
6
|
+
|
7
|
+
%p
|
8
|
+
Please try another page or, if you think something is wrong with our site,
|
9
|
+
do get in touch and let us know.
|
10
|
+
|
11
|
+
#sidebar
|
12
|
+
= haml :categories, :layout => false
|
13
|
+
= haml :feed, :layout => false
|
data/views/page.haml
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
.breadcrumb
|
2
|
+
%a{ :href => "/" } Home
|
3
|
+
>
|
4
|
+
- if @page.parent
|
5
|
+
%a{ :href => @page.parent.abspath }= @page.parent.heading
|
6
|
+
>
|
7
|
+
= @page.heading
|
8
|
+
|
9
|
+
#content
|
10
|
+
- if @page.date
|
11
|
+
.date= format_date(@page.date)
|
12
|
+
|
13
|
+
~ @page.to_html(self)
|
14
|
+
|
15
|
+
= haml :summaries, :layout => false, :locals => { :pages => @page.pages, :heading => :h3 }
|
16
|
+
|
17
|
+
- unless @page.articles.empty?
|
18
|
+
%h2= "Articles on #{@page.heading}"
|
19
|
+
= haml :summaries, :layout => false, :locals => { :pages => @page.articles, :heading => :h3 }
|
20
|
+
|
21
|
+
- unless @page.categories.empty?
|
22
|
+
.categories
|
23
|
+
%strong Categories:
|
24
|
+
- @page.categories.each do |category|
|
25
|
+
%a{ :href => category.abspath }= category.heading
|
26
|
+
|
27
|
+
= haml :comments, :layout => false
|
28
|
+
|
29
|
+
= haml :sidebar, :layout => false
|
data/views/sidebar.haml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
xml.instruct!
|
2
|
+
xml.urlset :xmlns => "http://www.sitemaps.org/schemas/sitemap/0.9" do
|
3
|
+
xml.url do
|
4
|
+
xml.loc base_url
|
5
|
+
xml.changefreq "daily"
|
6
|
+
xml.priority "1.0"
|
7
|
+
xml.lastmod @last.xmlschema
|
8
|
+
end
|
9
|
+
@pages.each do |page|
|
10
|
+
xml.url do
|
11
|
+
xml.loc url_for(page)
|
12
|
+
xml.lastmod page.last_modified.xmlschema
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
- unless pages.empty?
|
2
|
+
%ol.pages
|
3
|
+
- pages.each do |page|
|
4
|
+
%li
|
5
|
+
- haml_tag heading do
|
6
|
+
%a{ :href => page.abspath }= page.heading
|
7
|
+
- if page.date
|
8
|
+
.date= format_date(page.date)
|
9
|
+
- if page.summary.nil? || page.summary.empty?
|
10
|
+
~ page.body
|
11
|
+
- else
|
12
|
+
~ page.summary
|
13
|
+
%p.read_more
|
14
|
+
%a{ :href => page.abspath }= page.read_more
|
metadata
ADDED
@@ -0,0 +1,302 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nesta
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 9
|
8
|
+
- 0
|
9
|
+
version: 0.9.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Graham Ashton
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-12-20 00:00:00 +00:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: builder
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - "="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 2
|
29
|
+
- 1
|
30
|
+
- 2
|
31
|
+
version: 2.1.2
|
32
|
+
type: :runtime
|
33
|
+
prerelease: false
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: haml
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - "="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
segments:
|
43
|
+
- 3
|
44
|
+
- 0
|
45
|
+
- 12
|
46
|
+
version: 3.0.12
|
47
|
+
type: :runtime
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: maruku
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - "="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
- 6
|
60
|
+
- 0
|
61
|
+
version: 0.6.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: RedCloth
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - "="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
segments:
|
73
|
+
- 4
|
74
|
+
- 2
|
75
|
+
- 2
|
76
|
+
version: 4.2.2
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *id004
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: sinatra
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - "="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
segments:
|
88
|
+
- 1
|
89
|
+
- 1
|
90
|
+
- 0
|
91
|
+
version: 1.1.0
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: *id005
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: shotgun
|
97
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
segments:
|
103
|
+
- 0
|
104
|
+
- 8
|
105
|
+
version: "0.8"
|
106
|
+
type: :runtime
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: *id006
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: hpricot
|
111
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
113
|
+
requirements:
|
114
|
+
- - "="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
segments:
|
117
|
+
- 0
|
118
|
+
- 8
|
119
|
+
- 2
|
120
|
+
version: 0.8.2
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *id007
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: rack-test
|
126
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - "="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
segments:
|
132
|
+
- 0
|
133
|
+
- 5
|
134
|
+
- 3
|
135
|
+
version: 0.5.3
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: *id008
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rspec
|
141
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
142
|
+
none: false
|
143
|
+
requirements:
|
144
|
+
- - "="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
segments:
|
147
|
+
- 1
|
148
|
+
- 3
|
149
|
+
- 0
|
150
|
+
version: 1.3.0
|
151
|
+
type: :development
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: *id009
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: rspec_hpricot_matchers
|
156
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
157
|
+
none: false
|
158
|
+
requirements:
|
159
|
+
- - "="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
segments:
|
162
|
+
- 1
|
163
|
+
- 0
|
164
|
+
version: "1.0"
|
165
|
+
type: :development
|
166
|
+
prerelease: false
|
167
|
+
version_requirements: *id010
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: test-unit
|
170
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
172
|
+
requirements:
|
173
|
+
- - "="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
segments:
|
176
|
+
- 1
|
177
|
+
- 2
|
178
|
+
- 3
|
179
|
+
version: 1.2.3
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: *id011
|
183
|
+
description: |
|
184
|
+
Nesta is a lightweight Content Management System, written in Ruby using
|
185
|
+
the Sinatra web framework. Nesta has the simplicity of a static site
|
186
|
+
generator, but (being a fully fledged Rack application) allows you to
|
187
|
+
serve dynamic content on demand.
|
188
|
+
|
189
|
+
Content is stored on disk in plain text files (there is no database).
|
190
|
+
Edit your content in a text editor and keep it under version control
|
191
|
+
(most people use git, but any version control system will do fine).
|
192
|
+
|
193
|
+
Implementing your site's design is easy, but Nesta also has a small
|
194
|
+
selection of themes to choose from.
|
195
|
+
|
196
|
+
email:
|
197
|
+
- graham@effectif.com
|
198
|
+
executables:
|
199
|
+
- nesta
|
200
|
+
extensions: []
|
201
|
+
|
202
|
+
extra_rdoc_files: []
|
203
|
+
|
204
|
+
files:
|
205
|
+
- .gitignore
|
206
|
+
- Gemfile
|
207
|
+
- Gemfile.lock
|
208
|
+
- LICENSE
|
209
|
+
- README.md
|
210
|
+
- Rakefile
|
211
|
+
- bin/nesta
|
212
|
+
- config.ru
|
213
|
+
- config/config.yml.sample
|
214
|
+
- config/deploy.rb.sample
|
215
|
+
- lib/nesta/app.rb
|
216
|
+
- lib/nesta/cache.rb
|
217
|
+
- lib/nesta/commands.rb
|
218
|
+
- lib/nesta/config.rb
|
219
|
+
- lib/nesta/models.rb
|
220
|
+
- lib/nesta/nesta.rb
|
221
|
+
- lib/nesta/overrides.rb
|
222
|
+
- lib/nesta/path.rb
|
223
|
+
- lib/nesta/plugins.rb
|
224
|
+
- lib/nesta/version.rb
|
225
|
+
- nesta.gemspec
|
226
|
+
- scripts/import-from-mephisto
|
227
|
+
- spec/atom_spec.rb
|
228
|
+
- spec/commands_spec.rb
|
229
|
+
- spec/config_spec.rb
|
230
|
+
- spec/model_factory.rb
|
231
|
+
- spec/models_spec.rb
|
232
|
+
- spec/overrides_spec.rb
|
233
|
+
- spec/page_spec.rb
|
234
|
+
- spec/path_spec.rb
|
235
|
+
- spec/sitemap_spec.rb
|
236
|
+
- spec/spec.opts
|
237
|
+
- spec/spec_helper.rb
|
238
|
+
- templates/Gemfile
|
239
|
+
- templates/Rakefile
|
240
|
+
- templates/config.ru
|
241
|
+
- templates/config/config.yml
|
242
|
+
- templates/config/deploy.rb
|
243
|
+
- views/analytics.haml
|
244
|
+
- views/atom.builder
|
245
|
+
- views/categories.haml
|
246
|
+
- views/comments.haml
|
247
|
+
- views/error.haml
|
248
|
+
- views/feed.haml
|
249
|
+
- views/index.haml
|
250
|
+
- views/layout.haml
|
251
|
+
- views/master.sass
|
252
|
+
- views/not_found.haml
|
253
|
+
- views/page.haml
|
254
|
+
- views/sidebar.haml
|
255
|
+
- views/sitemap.builder
|
256
|
+
- views/summaries.haml
|
257
|
+
has_rdoc: true
|
258
|
+
homepage: http://effectif.com/nesta
|
259
|
+
licenses: []
|
260
|
+
|
261
|
+
post_install_message:
|
262
|
+
rdoc_options: []
|
263
|
+
|
264
|
+
require_paths:
|
265
|
+
- lib
|
266
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
267
|
+
none: false
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
hash: 4334237335545750937
|
272
|
+
segments:
|
273
|
+
- 0
|
274
|
+
version: "0"
|
275
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
276
|
+
none: false
|
277
|
+
requirements:
|
278
|
+
- - ">="
|
279
|
+
- !ruby/object:Gem::Version
|
280
|
+
hash: 4334237335545750937
|
281
|
+
segments:
|
282
|
+
- 0
|
283
|
+
version: "0"
|
284
|
+
requirements: []
|
285
|
+
|
286
|
+
rubyforge_project: nesta
|
287
|
+
rubygems_version: 1.3.7
|
288
|
+
signing_key:
|
289
|
+
specification_version: 3
|
290
|
+
summary: Ruby CMS, written in Sinatra
|
291
|
+
test_files:
|
292
|
+
- spec/atom_spec.rb
|
293
|
+
- spec/commands_spec.rb
|
294
|
+
- spec/config_spec.rb
|
295
|
+
- spec/model_factory.rb
|
296
|
+
- spec/models_spec.rb
|
297
|
+
- spec/overrides_spec.rb
|
298
|
+
- spec/page_spec.rb
|
299
|
+
- spec/path_spec.rb
|
300
|
+
- spec/sitemap_spec.rb
|
301
|
+
- spec/spec.opts
|
302
|
+
- spec/spec_helper.rb
|