soxer 0.9.10 → 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,4 +1,28 @@
1
- = 0.9.10 / 2011-03-21
1
+ = 0.9.11 / 2011-04-30
2
+
3
+ * Fixed relative paths in config.ru for app requirement.
4
+
5
+ * Fixed scoping inside classes. This was a severe bug.
6
+ It's a mistery how it worked until sinatra 1.2.3...
7
+
8
+ * Deleted unneeded classes.
9
+
10
+ * Added initialization to objects.
11
+
12
+ * Properly modularized Soxer. There are now no global settings that
13
+ Soxer uses
14
+
15
+ * Soxer sets up several application speciffic directories, which can be
16
+ changed inside SoxerApp.
17
+
18
+ * Setting up the root of application is now mandatory.
19
+
20
+ * Changed and cleaned skeletal application's app.rb and config.ru files
21
+ to reflect the new modularity.
22
+
23
+ * Renamed config.yml to config.yml.example, added cosmetic fixes to it.
24
+
25
+ = 0.9.10 / 2011-03-22
2
26
 
3
27
  * The function get_list now returns an array of hashies. This was a severe
4
28
  inconsistency.
@@ -9,6 +33,8 @@
9
33
  * Completely rewritten inclusion of empty directories to facilitate a more
10
34
  flexible skeleton project creation.
11
35
 
36
+ * Added a blog skeleton to the list of project skeletons.
37
+
12
38
  = 0.9.9 / 2011-03-03
13
39
 
14
40
  * Changed the names of Classes to match CamelCase convention in Ruby
data/lib/soxer/main.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
-
3
2
  require 'hashie'
4
3
  require 'sinatra/base'
5
4
  require 'yaml'
6
5
  require 'haml'
6
+ require 'sass'
7
7
  require 'uuid'
8
8
 
9
9
  #== Sinatra, web publishing DSL
@@ -24,7 +24,7 @@ module Sinatra
24
24
  # Copyright: Copyright (c) 1010 Toni Anzlovar, www.formalibre.si
25
25
  # License: Distributed under the GPL licence. http://www.gnu.org/licenses/gpl.html
26
26
  module Soxer
27
-
27
+
28
28
  # === The FileReader class
29
29
  #
30
30
  # FileReader is responsible for reading a YAML file, that contains the
@@ -36,25 +36,22 @@ module Sinatra
36
36
  # if the fields are not present, they are automatically generated and
37
37
  # saved in the file.
38
38
  class FileReader
39
- # The name of the YAML file
39
+
40
40
  attr_accessor :filename
41
41
 
42
- # The standard Sinatra application settings, recieved from sinatra/base.
43
- # These settings are configurable in __./config.ru__ file in the application
44
- # directory.
45
- def settings
46
- @s = Sinatra::Application
42
+ def initialize filename, settings
43
+ @f, @s = filename, settings
47
44
  end
48
45
 
49
- # The method, that retuns the YAML structure in a ::hash::.
46
+ # The method, that retuns the YAML structure in a ::hashie hash::.
47
+ # Hashie makes the hash keys accessible either strings, symbols or methods.
50
48
  def get_content
51
- self.settings
52
- out = YAML.load_file( @filename )
49
+ out = YAML.load_file( @f )
53
50
  add_date unless out['date']
54
51
  add_id unless out['uuid']
55
- out['url'] = @filename.gsub(/#{@s.origin}(.+)\.yaml$/, "\\1" ).gsub(/(.+)\/index$/, "\\1" )
56
- out['mtime'] = File.mtime( @filename )
57
- out
52
+ out['url'] = @f.gsub(/#{@s.origin}\/(.+)\.yaml$/, "\\1" ).gsub(/(.+)\/index$/, "\\1" )
53
+ out['mtime'] = File.mtime( @f )
54
+ Hashie::Mash.new out
58
55
  end
59
56
 
60
57
  private
@@ -63,18 +60,18 @@ module Sinatra
63
60
  # Identifier field to the data structure.
64
61
  def add_id
65
62
  mtime = File.mtime( @filename )
66
- File.open( @filename, 'r+' ) do |f|
63
+ File.open( @f, 'r+' ) do |f|
67
64
  out = "uuid: #{UUID.new.generate}\n"
68
65
  out << f.read; f.pos = 0
69
66
  f << out
70
67
  end
71
- File.utime( 0, mtime, @filename )
68
+ File.utime( 0, mtime, @f )
72
69
  end
73
70
 
74
71
  # A private method, that adds a standard Time.now to the data structure.
75
72
  def add_date
76
- mtime = File.mtime( @filename )
77
- File.open( @filename, 'r+' ) do |f|
73
+ mtime = File.mtime( @f )
74
+ File.open( @f, 'r+' ) do |f|
78
75
  out = "date: #{mtime.xmlschema}\n"
79
76
  out << f.read; f.pos = 0
80
77
  f << out
@@ -89,53 +86,22 @@ module Sinatra
89
86
  # (the default is "content" directory within application root) or a
90
87
  # directory path with index.yaml
91
88
  class UrlReader
92
-
93
- # Url, recieved from the request
89
+
94
90
  attr_accessor :url
95
-
96
- # The standard Sinatra application settings, recieved from sinatra/base.
97
- # These settings are configurable in __./config.ru__ file in the application
98
- # directory.
99
- def settings
100
- @s = Sinatra::Application
91
+
92
+ def initialize url, settings
93
+ @url, @s = url, settings
101
94
  end
102
95
 
103
96
  # Creates a FileReader instance, maps the url to either yaml file or
104
97
  # index.yaml within a directory represented by url.
105
98
  def get_content
106
- self.settings
107
99
  fn = case true
108
100
  when File.exist?( f = File.join( @s.origin, @url+'.yaml' ) ) then f
109
101
  when File.exist?( f = File.join( @s.origin, @url+'/index.yaml' ) ) then f
110
102
  else throw :halt, [404, "Document not found"]
111
103
  end
112
- out = FileReader.new
113
- out.filename = fn
114
- out.get_content
115
- end
116
- end
117
-
118
- # === The DocumentStore class
119
- #
120
- # DocumentStore class extends the hash to enable document attribute access
121
- # in one of three ways:
122
- # hash key: page['key'] => value
123
- # method call: page.key => value
124
- # symbol: page[:key] => value
125
- class Document < Hash
126
- def initialize(attrs)
127
- attrs.each do |k, v|
128
- self[k] = v
129
- end
130
- end
131
-
132
- def []=(k, v)
133
- unless respond_to?(k)
134
- self.class.send :define_method, k do
135
- self[k]
136
- end
137
- end
138
- super
104
+ FileReader.new(fn, @s).get_content
139
105
  end
140
106
  end
141
107
 
@@ -143,6 +109,7 @@ module Sinatra
143
109
  #
144
110
  # This module introduces several helper methods to Soxer application.
145
111
  module Helpers
112
+
146
113
  # === Document reader
147
114
  # This method reads a yaml file from disk and returns a hash.
148
115
  #
@@ -154,9 +121,7 @@ module Sinatra
154
121
  # [=> Hash]
155
122
  # A hash representation of yaml file.
156
123
  def get_page url=params[:splat][0]
157
- out = UrlReader.new
158
- out.url = url
159
- Hashie::Mash.new out.get_content
124
+ UrlReader.new(url, options).get_content
160
125
  end
161
126
 
162
127
  # === Document list generator method
@@ -170,15 +135,14 @@ module Sinatra
170
135
  # [=> Array]
171
136
  # Array of hashes representing yaml files.
172
137
  def get_list &block
173
- fileset= Dir.glob File.join( settings.origin, "**", "*.yaml" )
138
+ fileset= Dir.glob File.join( options.origin, "**", "*.yaml" )
174
139
  fileset.delete_if {|d| (d=~/\/index.yaml$/ and fileset.include? d[0..-12]+'.yaml') }
175
140
  output = fileset.map! do |f|
176
- file = FileReader.new
177
- file.filename = f
141
+ file = FileReader.new f, options
178
142
  if block_given?
179
- f = block.call Hashie::Mash.new( file.get_content )
143
+ f = block.call file.get_content
180
144
  else
181
- f = Hashie::Mash.new file.get_content
145
+ f = file.get_content
182
146
  end
183
147
  end.compact
184
148
  end
@@ -345,18 +309,20 @@ module Sinatra
345
309
 
346
310
  end
347
311
 
348
- def self.registered(app) #:nodoc: all
349
- app.helpers Soxer::Helpers
312
+ def self.registered(app)
350
313
 
351
- def app.settings
352
- Sinatra::Application
314
+ if app.settings.root then
315
+ app.set :origin, File.join(app.settings.root, 'content') unless app.settings.respond_to? 'content'
316
+ app.set :public, File.join(app.settings.root, 'public') unless app.settings.respond_to? 'public'
317
+ app.set :views, File.join(app.settings.root, 'views') unless app.settings.respond_to? 'views'
318
+ app.set :log, File.join(app.settings.root, 'log') unless app.settings.respond_to? 'log'
353
319
  end
354
320
 
355
- set :origin, File.join(app.settings.root, 'content')
321
+ app.helpers Soxer::Helpers
356
322
 
357
- mime_type :otf, 'application/x-font-TrueType'
358
- mime_type :ttf, 'application/x-font-TrueType'
359
- mime_type :eot, 'application/vnd.ms-fontobject'
323
+ app.mime_type :otf, 'application/x-font-TrueType'
324
+ app.mime_type :ttf, 'application/x-font-TrueType'
325
+ app.mime_type :eot, 'application/vnd.ms-fontobject'
360
326
 
361
327
  app.get("/sitemap.xml") { sitemap }
362
328
 
@@ -364,7 +330,7 @@ module Sinatra
364
330
  content_type "text/html", :charset => "utf-8"
365
331
  url = params[:captures][0]
366
332
  type = params[:captures][1]
367
- file = File.join settings.origin, url
333
+ file = File.join app.settings.origin, url
368
334
 
369
335
  case type
370
336
  when 'yaml' then
@@ -374,9 +340,9 @@ module Sinatra
374
340
  send_file(file, :disposition => nil) if File.exist? file
375
341
  throw :halt, [404, "Document not found"]if !File.exist? file
376
342
 
377
- when /^css$/i then
378
- content_type "text/css", :charset => "utf-8"
379
- sass url.sub('.'+type, '').to_sym
343
+ when /^css$/i then
344
+ content_type "text/css", :charset => "utf-8"
345
+ sass url.sub('.'+type, '').to_sym
380
346
 
381
347
  when 'atom' then
382
348
  content_type "application/atom+xml", :charset => "utf-8"
@@ -385,7 +351,6 @@ module Sinatra
385
351
  haml page['content'], :layout => layout,
386
352
  :format => :xhtml,
387
353
  :locals => { :page => page }
388
-
389
354
 
390
355
  when 'rss' then
391
356
  'RSS is not supported yet'
@@ -397,9 +362,9 @@ module Sinatra
397
362
  app.get '*/?' do
398
363
  content_type "text/html", :charset => "utf-8"
399
364
  page = get_page
400
- page['layout'] ||= 'layout'
401
- page['layout'] == 'false' ? layout = false : layout = page['layout'].to_sym
402
- haml page['content'], :layout => layout, :locals => { :page => page }
365
+ page.layout ||= 'layout'
366
+ page.layout == 'false' ? layout = false : layout = page.layout.to_sym
367
+ haml page.content, :layout => layout, :locals => { :page => page }
403
368
  end
404
369
 
405
370
  end
@@ -407,4 +372,3 @@ module Sinatra
407
372
 
408
373
  register Soxer
409
374
  end
410
-
@@ -1,9 +1,12 @@
1
1
  # encoding: utf-8
2
2
  require "rubygems"
3
- require "sinatra"
3
+ require "sinatra/base"
4
4
  require "soxer"
5
5
 
6
6
  class SoxerApp < Sinatra::Base
7
+ set :root, File.dirname(__FILE__)
8
+ set :haml, {:format => :html5,
9
+ :attr_wrapper => '"'}
7
10
  enable :sessions
8
11
  before do
9
12
  session[:theme] ||= %w[dna blossom][rand 1]
@@ -1,25 +1,5 @@
1
- require "rubygems"
2
- require "sinatra/base"
3
- require "app"
1
+ # encoding: utf-8
2
+ require "sinatra"
3
+ require "./app"
4
4
 
5
- disable :run
6
- set :server, %w[thin mongrel webrick]
7
- set :haml, {:format => :html5,
8
- :attr_wrapper => '"'}
9
- set :haml, {:encoding => 'utf-8'} if RUBY_VERSION=~/1\.9/
10
-
11
- configure :development do
12
- require 'sinatra/reloader'
13
- set :port, 9394
14
- end
15
-
16
- configure :production do
17
- set :haml, {:ugly => true}
18
- set :port, 55500
19
- end
20
-
21
- set :environment, :production
22
-
23
- map '/' do
24
- run SoxerApp
25
- end
5
+ run SoxerApp
@@ -2,8 +2,8 @@
2
2
  environment: production
3
3
  chdir: /path/to/your/application/home/dir
4
4
  address: 0.0.0.0
5
- user: toni
6
- group: toni
5
+ user: username
6
+ group: username
7
7
  port: 55500
8
8
  pid: /path/to/your/application/home/dir/log/thin.pid
9
9
  log: /path/to/your/application/home/dir/log/thin.log
@@ -13,7 +13,7 @@
13
13
  .block
14
14
  %h2 History
15
15
  .content
16
- h4 This block is currently not working properly.
16
+ %h4 This block is currently not working properly.
17
17
  %ul
18
18
  -history.each_pair do |y,m|
19
19
  -m.each_pair do |mm,dd|
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
2
  require "rubygems"
3
- require "sinatra"
3
+ require "sinatra/base"
4
4
  require "soxer"
5
5
 
6
6
  class SoxerApp < Sinatra::Base
7
+ set :root, File.dirname(__FILE__)
7
8
  register Sinatra::Soxer
8
-
9
9
  end
@@ -1,25 +1,5 @@
1
- require "rubygems"
2
- require "sinatra/base"
3
- require "app"
1
+ # encoding: utf-8
2
+ require "sinatra"
3
+ require "./app"
4
4
 
5
- disable :run
6
- set :server, %w[thin mongrel webrick]
7
- set :haml, {:format => :html5,
8
- :attr_wrapper => '"'}
9
- set :haml, {:encoding => 'utf-8'} if RUBY_VERSION=~/1\.9/
10
-
11
- configure :development do
12
- require 'sinatra/reloader'
13
- set :port, 9394
14
- end
15
-
16
- configure :production do
17
- set :haml, {:ugly => true}
18
- set :port, 55500
19
- end
20
-
21
- set :environment, :production
22
-
23
- map '/' do
24
- run SoxerApp
25
- end
5
+ run SoxerApp
@@ -2,8 +2,8 @@
2
2
  environment: production
3
3
  chdir: /path/to/your/application/home/dir
4
4
  address: 0.0.0.0
5
- user: toni
6
- group: toni
5
+ user: username
6
+ group: username
7
7
  port: 55500
8
8
  pid: /path/to/your/application/home/dir/log/thin.pid
9
9
  log: /path/to/your/application/home/dir/log/thin.log
data/soxer.gemspec CHANGED
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
4
4
  s.rubygems_version = '1.3.7'
5
5
 
6
6
  s.name = 'soxer'
7
- s.version = '0.9.10'
8
- s.date = '2011-03-21'
7
+ s.version = '0.9.11'
8
+ s.date = '2011-04-30'
9
9
  s.rubyforge_project = 'soxer'
10
10
 
11
11
  s.summary = "Dynamic web site generator engine"
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soxer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 47
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 9
9
- - 10
10
- version: 0.9.10
8
+ - 11
9
+ version: 0.9.11
11
10
  platform: ruby
12
11
  authors:
13
12
  - Toni Anzlovar
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-03-21 00:00:00 +01:00
17
+ date: 2011-04-30 00:00:00 +02:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,7 +25,6 @@ dependencies:
26
25
  requirements:
27
26
  - - ~>
28
27
  - !ruby/object:Gem::Version
29
- hash: 1
30
28
  segments:
31
29
  - 1
32
30
  version: "1"
@@ -40,7 +38,6 @@ dependencies:
40
38
  requirements:
41
39
  - - ~>
42
40
  - !ruby/object:Gem::Version
43
- hash: 5
44
41
  segments:
45
42
  - 3
46
43
  version: "3"
@@ -54,7 +51,6 @@ dependencies:
54
51
  requirements:
55
52
  - - ~>
56
53
  - !ruby/object:Gem::Version
57
- hash: 7
58
54
  segments:
59
55
  - 2
60
56
  version: "2"
@@ -68,7 +64,6 @@ dependencies:
68
64
  requirements:
69
65
  - - ~>
70
66
  - !ruby/object:Gem::Version
71
- hash: 23
72
67
  segments:
73
68
  - 1
74
69
  - 0
@@ -84,7 +79,6 @@ dependencies:
84
79
  requirements:
85
80
  - - ~>
86
81
  - !ruby/object:Gem::Version
87
- hash: 1
88
82
  segments:
89
83
  - 0
90
84
  - 5
@@ -107,47 +101,45 @@ files:
107
101
  - bin/soxer
108
102
  - lib/soxer.rb
109
103
  - lib/soxer/main.rb
110
- - lib/soxer/views/atom.haml
111
- - lib/soxer/views/sitemap.haml
112
- - lib/soxer/views/disqus.haml
113
104
  - lib/soxer/views/atom_layout.haml
105
+ - lib/soxer/views/disqus.haml
114
106
  - lib/soxer/views/google_analytics.haml
115
- - lib/soxer/views/google_ads.haml
107
+ - lib/soxer/views/atom.haml
116
108
  - lib/soxer/views/breadcrumb.haml
117
- - lib/soxer/skel/blog/content/index.yaml
118
- - lib/soxer/skel/blog/content/blog/2010-09-06-lorem_ipsum.yaml
119
- - lib/soxer/skel/blog/content/blog/2010-11-24-what_is_where.yaml
120
- - lib/soxer/skel/blog/content/blog/2010-10-12-how_to_spend_your_time_wisely.yaml
121
- - lib/soxer/skel/blog/content/blog/2010-04-16-ecce_quomdo_moritur_iustus.yaml
122
- - lib/soxer/skel/blog/content/blog/2009-06-02-meum_est_propositum.yaml
123
- - lib/soxer/skel/blog/content/blog.atom.yaml
124
- - lib/soxer/skel/blog/content/categories/index.yaml
125
- - lib/soxer/skel/blog/SETUP.rb
126
- - lib/soxer/skel/blog/public/css/dna/sequence.jpg
127
- - lib/soxer/skel/blog/public/css/blossom/blossom.jpg
128
- - lib/soxer/skel/blog/public/fonts/trashed.ttf
129
- - lib/soxer/skel/blog/public/fonts/GeosansLight.ttf
130
- - lib/soxer/skel/blog/config.yml
131
- - lib/soxer/skel/blog/config.ru
132
- - lib/soxer/skel/blog/views/_doc_short.haml
133
- - lib/soxer/skel/blog/views/layout.haml
109
+ - lib/soxer/views/sitemap.haml
110
+ - lib/soxer/views/google_ads.haml
111
+ - lib/soxer/skel/blog/config.yml.example
134
112
  - lib/soxer/skel/blog/views/_block_history.haml
135
- - lib/soxer/skel/blog/views/css/common.sass
136
- - lib/soxer/skel/blog/views/css/trashed/css.sass
113
+ - lib/soxer/skel/blog/views/_block_categories.haml
137
114
  - lib/soxer/skel/blog/views/css/dna/css.sass
138
115
  - lib/soxer/skel/blog/views/css/blossom/css.sass
139
- - lib/soxer/skel/blog/views/_block_categories.haml
140
- - lib/soxer/skel/blog/views/_block_about.haml
116
+ - lib/soxer/skel/blog/views/css/common.sass
141
117
  - lib/soxer/skel/blog/views/_doc_docinfo.haml
142
118
  - lib/soxer/skel/blog/views/_block_recent.haml
119
+ - lib/soxer/skel/blog/views/_doc_short.haml
120
+ - lib/soxer/skel/blog/views/_block_about.haml
121
+ - lib/soxer/skel/blog/views/layout.haml
122
+ - lib/soxer/skel/blog/SETUP.rb
143
123
  - lib/soxer/skel/blog/app.rb
144
- - lib/soxer/skel/empty/content/index.yaml
145
- - lib/soxer/skel/empty/SETUP.rb
146
- - lib/soxer/skel/empty/config.yml
147
- - lib/soxer/skel/empty/config.ru
148
- - lib/soxer/skel/empty/views/layout.haml
124
+ - lib/soxer/skel/blog/config.ru
125
+ - lib/soxer/skel/blog/public/css/dna/sequence.jpg
126
+ - lib/soxer/skel/blog/public/css/blossom/blossom.jpg
127
+ - lib/soxer/skel/blog/public/fonts/GeosansLight.ttf
128
+ - lib/soxer/skel/blog/content/blog.atom.yaml
129
+ - lib/soxer/skel/blog/content/blog/2010-11-24-what_is_where.yaml
130
+ - lib/soxer/skel/blog/content/blog/2010-09-06-lorem_ipsum.yaml
131
+ - lib/soxer/skel/blog/content/blog/2010-04-16-ecce_quomdo_moritur_iustus.yaml
132
+ - lib/soxer/skel/blog/content/blog/2010-10-12-how_to_spend_your_time_wisely.yaml
133
+ - lib/soxer/skel/blog/content/blog/2009-06-02-meum_est_propositum.yaml
134
+ - lib/soxer/skel/blog/content/index.yaml
135
+ - lib/soxer/skel/blog/content/categories/index.yaml
136
+ - lib/soxer/skel/empty/config.yml.example
149
137
  - lib/soxer/skel/empty/views/css/css.sass
138
+ - lib/soxer/skel/empty/views/layout.haml
139
+ - lib/soxer/skel/empty/SETUP.rb
150
140
  - lib/soxer/skel/empty/app.rb
141
+ - lib/soxer/skel/empty/config.ru
142
+ - lib/soxer/skel/empty/content/index.yaml
151
143
  has_rdoc: true
152
144
  homepage: http://soxer.mutsu.org
153
145
  licenses: []
@@ -162,7 +154,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
154
  requirements:
163
155
  - - ">="
164
156
  - !ruby/object:Gem::Version
165
- hash: 3
166
157
  segments:
167
158
  - 0
168
159
  version: "0"
@@ -171,7 +162,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
162
  requirements:
172
163
  - - ">="
173
164
  - !ruby/object:Gem::Version
174
- hash: 3
175
165
  segments:
176
166
  - 0
177
167
  version: "0"
@@ -1,152 +0,0 @@
1
- /*
2
- -----------------------------------------------------------------------------
3
- Trashed Blog Theme for Soxer | http://soxer.mutsu.org
4
- Copyright 2010 Toni Anzlovar, toni[at]formalibre.si
5
- Attribution-ShareAlike 3.0 | http://creativecommons.org/licenses/by-sa/3.0/
6
- -----------------------------------------------------------------------------
7
- @import "../common"
8
-
9
-
10
- // COLORS
11
- //-----------------------------------------------------------------------------
12
- $white: #ffffff
13
- $link: #375d9d
14
- $important: #375d9d
15
- $grey: #808080
16
- $lite: #dadada
17
- $normal: #4d4d4d
18
-
19
- // GENERAL
20
- //-----------------------------------------------------------------------------
21
- body
22
- color: $normal
23
- font:
24
- size: 13px
25
- family: "Trebuchet MS", Verdana, Arial, Helvetica, Swiss, Sans-Serif
26
- margin: 0
27
- padding: 0
28
-
29
- a
30
- color: $important
31
- text-decoration: none
32
- @include corners(3)
33
-
34
- &:hover
35
- color: $white
36
- background: $important
37
- padding: 0px 3px
38
- margin: -0px -3px
39
-
40
- h1, h2, h3, h4, h5, h6
41
- +n
42
-
43
- h1, h2
44
- color: $grey
45
- font:
46
- family: GeoSans
47
- weight: normal
48
- h1
49
- font-size: 38px
50
- margin:
51
- bottom: 30px
52
-
53
- h2
54
- font-size: 28px
55
- a
56
- @include corners(7)
57
- &:hover
58
- @include corners(0)
59
- +n
60
- color: $important
61
- background: none
62
- border-bottom: 1px solid $important
63
-
64
- hr
65
- display: none
66
-
67
- // COMMON
68
- //-----------------------------------------------------------------------------
69
- body
70
- background: url(/css/dna/sequence.jpg) center top no-repeat
71
- // @include sh(inset 0px 0px 200px rgba(0, 0, 0, .25))
72
-
73
- #header, #content
74
- width: 750px
75
- +center
76
-
77
- #header
78
- height: 260px
79
- color: $white
80
- text-shadow: black 1px 1px 5px
81
- .slogan
82
- font:
83
- family: GeoSans
84
- size: 42px
85
-
86
- padding-top: 10px
87
-
88
- #content
89
- padding-top: 20px
90
- &:after
91
- +clear
92
-
93
- #footer
94
- width: 100%
95
- background: $lite
96
- border-top: 1px solid $grey
97
- margin-top: 30px
98
- @include sh(inset 0px 0px 100px rgba(0, 0, 0, .25))
99
-
100
- .content
101
- width: 750px
102
- height: 180px
103
- +center
104
-
105
- // MAIN & SIDEBAR
106
- //-----------------------------------------------------------------------------
107
- #main, #sidebar
108
- float: left
109
- min-height: 300px
110
-
111
- #main
112
- width: 464px
113
- margin:
114
- top: 10px
115
- left: 286px
116
-
117
- .short
118
- margin-top: 30px
119
- small
120
- color: $grey
121
- font:
122
- style: italic
123
- size: 13px
124
- p
125
- +n
126
- .shot:after
127
- +clear
128
-
129
- #sidebar
130
- width: 272px
131
- margin:
132
- top: 19px
133
- left: -750px
134
-
135
- // BLOCKS
136
- //-----------------------------------------------------------------------------
137
- .block
138
- margin-bottom: 20px
139
- ul
140
- +cu
141
- margin-top: 10px
142
- li
143
- display: block
144
- clear: both
145
- +cl
146
- margin-bottom: 5px
147
- &:after
148
- +clear
149
-
150
- &.recent-entries
151
- a
152
- display: block