soxer 0.9.10 → 0.9.11

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/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