gumdrop 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/Readme.md CHANGED
@@ -1,3 +1,62 @@
1
1
  # Gumdrop
2
2
 
3
3
  Gumdrop is a small and sweet cms/prototype tool. It can generate static html with relative paths, and includes a dev server that can be run via any rack server (including POW!).
4
+
5
+ ## Create New Site
6
+
7
+ gumdrop -c my_new_site
8
+
9
+
10
+ ## Build Static HTML
11
+
12
+ gumdrop -b
13
+
14
+ Or, you can use Rake:
15
+
16
+ rake build
17
+
18
+
19
+ ## Start Dev Server
20
+
21
+ gumdrop -s
22
+
23
+ Or, using Rake again:
24
+
25
+ rake serve
26
+
27
+ # Gumdrop Site Structure
28
+
29
+ This is the file structure that is generated when you run `gumdrop --create site_root`. You can change whatever you'd like under `source/`, this is just a starting point.
30
+
31
+ site_root/
32
+ data/
33
+ config.yml
34
+ lib/
35
+ view_helpers.rb
36
+ source/
37
+ favicon.ico
38
+ index.html.erb
39
+ theme/
40
+ screen.css.scss
41
+ scripts/
42
+ app.js.coffee
43
+ styles/
44
+ _tools.css.scss
45
+ templates/
46
+ site.template.erb
47
+ Gemfile
48
+ config.ru
49
+ Rakefile
50
+
51
+
52
+ When you run `gumdrop --build` or `rake build` it will generate an `output/` folder.
53
+
54
+ site_root/
55
+ output/ (** GENERATED CONTENT **)
56
+ index.html
57
+ theme/
58
+ screen.css
59
+ scripts/
60
+ app.js
61
+
62
+ You'll notice the templates and partials aren't included in the output.
@@ -100,7 +100,7 @@ module Gumdrop
100
100
  end
101
101
 
102
102
  def render(path)
103
- page= Gumdrop.site[path]
103
+ page= get_page path
104
104
  unless page.nil?
105
105
  #TODO: nested state for an inline rendered page?
106
106
  old_layout= @state['layout']
@@ -126,6 +126,16 @@ module Gumdrop
126
126
  @state[name]
127
127
  end
128
128
  end
129
+
130
+ protected
131
+
132
+ def get_page(path)
133
+ page= Gumdrop.site[path]
134
+ page= Gumdrop.site["#{path}.html"] if page.nil? # Bit of a hack...
135
+ page= Gumdrop.partials[path] if page.nil?
136
+ page
137
+ end
138
+
129
139
  end
130
140
  end
131
141
 
@@ -22,7 +22,7 @@ module Gumdrop
22
22
  matches= Dir["source/#{file_path}*"]
23
23
  if matches.length > 0
24
24
 
25
- Gumdrop.site = Gumdrop.layouts= Hash.new do |hash, key|
25
+ Gumdrop.site= Gumdrop.layouts= Gumdrop.generators= Hash.new do |hash, key|
26
26
  templates= Dir["source/**/#{key}*"]
27
27
  if templates.length > 0
28
28
  Content.new( templates[0] )
@@ -31,10 +31,22 @@ module Gumdrop
31
31
  nil
32
32
  end
33
33
  end
34
+
35
+ Gumdrop.partials= Hash.new do |hash, key|
36
+ templates= Dir["source/**/_#{key}*"]
37
+ if templates.length > 0
38
+ Content.new( templates[0] )
39
+ else
40
+ puts "NOT FOUND: #{key}"
41
+ nil
42
+ end
43
+ end
34
44
 
35
45
  content= Content.new matches[0]
36
46
  if content.useLayout?
37
47
  content_type :css if content.ext == '.css' # Meh?
48
+ content_type :js if content.ext == '.js' # Meh?
49
+ content_type :xml if content.ext == '.xml' # Meh?
38
50
  content.render
39
51
  else
40
52
  send_file matches[0]
@@ -4,15 +4,14 @@ gem "sinatra"
4
4
  gem "active_support"
5
5
  gem "i18n"
6
6
  gem "rake"
7
- gem "gumdrop", :git=>"git://github.com/darthapo/gumdrop.git"
7
+ gem "gumdrop"
8
8
 
9
- #
10
9
  # Add your dependencies here:
11
10
 
12
11
  gem "sass"
13
- gem "haml"
14
12
  gem "coffee-script"
15
13
 
16
14
  # gem "rdiscount"
17
15
  # gem "less"
16
+ # gem "haml"
18
17
 
@@ -1,5 +1,15 @@
1
1
  module Gumdrop::ViewHelpers
2
2
 
3
+ # Calculate the years for a copyright
4
+ def copyright_years(start_year, divider="–")
5
+ end_year = Date.today.year
6
+ if start_year == end_year
7
+ "#{start_year}"
8
+ else
9
+ "#{start_year}#{divider}#{end_year}"
10
+ end
11
+ end
12
+
3
13
  #
4
14
  # Your custom helpers go here!
5
15
  #
@@ -1,3 +1,10 @@
1
1
  @import "styles/tools";
2
2
 
3
- @include css-reset();
3
+ @include css-reset();
4
+ @include grid();
5
+
6
+ body {
7
+ font-family: Helvetica, Sans-Serif;
8
+ width: 960px;
9
+ margin: 0 auto;
10
+ }
@@ -1,4 +1,4 @@
1
- // Layout Tools v 1.1
1
+ // Layout Tools v 1.2
2
2
 
3
3
  // Sample Usage:
4
4
  // #container {
@@ -75,7 +75,7 @@
75
75
 
76
76
  // CSS RESET
77
77
 
78
- @mixin css-reset($boxmodel:'border-box') {
78
+ @mixin css-clear($boxmodel:'border-box') {
79
79
  * {
80
80
  @include box-model($boxmodel);
81
81
  }
@@ -115,6 +115,56 @@
115
115
  }
116
116
  }
117
117
 
118
+ @mixin css-reset($size:14px, $boxmodel:'border-box') {
119
+ @include css-clear($boxmodel);
120
+ body {
121
+ font-size: $size;
122
+ line-height: 1.3em;
123
+ }
124
+ h1, h2, h3, h4, h5, h6 {
125
+ font-weight: bold;
126
+ }
127
+ h1 {
128
+ font-size: 175%;
129
+ }
130
+ h2 {
131
+ font-size: 155%;
132
+ }
133
+ h3 {
134
+ font-size: 135%;
135
+ }
136
+ h4 {
137
+ font-size: 120%;
138
+ }
139
+ h5 {
140
+ font-size: 105%;
141
+ }
142
+ h6 {
143
+ font-size: 100%;
144
+ }
145
+ p, blockquote, h1, h2, h3, h4, h5, h6, pre, ol, ul {
146
+ padding: 0.5em 0;
147
+ }
148
+ b, strong {
149
+ font-weight: bold;
150
+ }
151
+ i, em {
152
+ font-style: italic;
153
+ }
154
+ ul, ol {
155
+ padding-left: 2em;
156
+ }
157
+ ul {
158
+ list-style: circle;
159
+ }
160
+ ol {
161
+ list-style: decimal;
162
+ }
163
+ blockquote {
164
+ padding-left: 4em;
165
+ }
166
+ }
167
+
118
168
  @mixin debug-hover($color:'red') {
119
169
  &:hover {
120
170
  outline: 1px solid $color;
@@ -0,0 +1,33 @@
1
+ !!! 5
2
+ %html( lang="en" )
3
+ %head
4
+ %meta( charset="utf-8" )
5
+ %title= data.config.title
6
+ /[if le IE 9]
7
+ %script( src="http://html5shiv.googlecode.com/svn/trunk/html5.js" )
8
+ %link( rel="stylesheet" href="#{uri 'theme/screen.css'}" type="text/css" media="screen" charset="utf-8")
9
+ %script( src="#{uri 'theme/scripts/app.js'}" )
10
+ %body
11
+ .row
12
+ .col.span-12
13
+ %header
14
+ %h1= data.config.title
15
+ %h4= data.config.tagline
16
+ .row
17
+ .col.span-12
18
+ %nav
19
+ %ul
20
+ %li
21
+ %a(href="#{uri 'index.html'}") Home
22
+ %article
23
+ .row
24
+ .col.span-8
25
+ %section
26
+ = content
27
+ .col.span-4
28
+ %aside
29
+ = render 'sidebar'
30
+ .row
31
+ .col.span-12
32
+ %footer
33
+ = copyright_years 2011
@@ -1,5 +1,5 @@
1
1
  module Gumdrop
2
2
 
3
- VERSION = "0.2.1" unless defined?(::Gumdrop::VERSION)
3
+ VERSION = "0.2.2" unless defined?(::Gumdrop::VERSION)
4
4
 
5
5
  end
@@ -2,20 +2,10 @@ module Gumdrop
2
2
 
3
3
  module ViewHelpers
4
4
 
5
- # Calculate the years for a copyright
6
- def copyright_years(start_year, divider="–")
7
- end_year = Date.today.year
8
- if start_year == end_year
9
- "#{start_year}"
10
- else
11
- "#{start_year}#{divider}#{end_year}"
12
- end
13
- end
14
-
15
5
  # Handy for hiding a block of unfinished code
16
- def hidden(&block)
17
- #no-op
18
- end
6
+ # def hidden(&block)
7
+ # #no-op
8
+ # end
19
9
 
20
10
  def gumdrop_version
21
11
  ::Gumdrop::VERSION
data/lib/gumdrop.rb CHANGED
@@ -42,14 +42,18 @@ module Gumdrop
42
42
  end
43
43
  end
44
44
 
45
- # Layout
45
+ # Layouts, Generators, and Partials
46
46
  @site.keys.each do |path|
47
47
  if File.extname(path) == ".template"
48
48
  @layouts[File.basename(path)]= @site.delete(path)
49
+
49
50
  elsif File.extname(path) == ".generator"
50
51
  @generators[File.basename(path)]= @site.delete(path)
52
+
51
53
  elsif File.basename(path).starts_with?("_")
52
- @partials[File.basename(path)[1..-1]]= @site.delete(path)
54
+ partial_name= File.basename(path)[1..-1].gsub(File.extname(File.basename(path)), '')
55
+ # puts "Creating partial #{partial_name} from #{path}"
56
+ @partials[partial_name]= @site.delete(path)
53
57
  end
54
58
  end
55
59
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 1
9
- version: 0.2.1
8
+ - 2
9
+ version: 0.2.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Matt McCray
@@ -44,7 +44,7 @@ files:
44
44
  - lib/gumdrop/template/source/theme/screen.css.scss
45
45
  - lib/gumdrop/template/source/theme/scripts/app.js.coffee
46
46
  - lib/gumdrop/template/source/theme/styles/_tools.scss
47
- - lib/gumdrop/template/source/theme/templates/site.template.erb
47
+ - lib/gumdrop/template/source/theme/templates/site.template.haml
48
48
  - lib/gumdrop/version.rb
49
49
  - lib/gumdrop/view_helpers.rb
50
50
  - lib/gumdrop.rb
@@ -1,25 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <title><%= data.config.title %></title>
6
- <!--[if lt IE 9]>
7
- <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
8
- <![endif]-->
9
- <script type="text/javascript" src="<%= uri 'theme/scripts/app.js' %>"></script>
10
- </head>
11
- <body>
12
- <header>
13
- <h1><%= data.config.title %></h1>
14
- <h4><%= data.config.tagline %></h4>
15
- </header>
16
- <nav></nav>
17
- <article>
18
- <section>
19
- <%= content %>
20
- </section>
21
- </article>
22
- <aside></aside>
23
- <footer><%= copyright_years 2009 %></footer>
24
- </body>
25
- </html>