webby 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/History.txt +7 -0
  2. data/Manifest.txt +30 -1
  3. data/Rakefile +6 -2
  4. data/bin/webby +1 -1
  5. data/data/Rakefile +6 -2
  6. data/data/content/{index.rhtml → index.txt} +0 -0
  7. data/data/tasks/create.rake +6 -1
  8. data/data/tasks/deploy.rake +22 -0
  9. data/data/tasks/heel.rake +26 -0
  10. data/data/tasks/setup.rb +27 -0
  11. data/lib/webby.rb +20 -12
  12. data/lib/webby/builder.rb +6 -19
  13. data/lib/webby/main.rb +85 -15
  14. data/lib/webby/pages_db.rb +24 -1
  15. data/lib/webby/renderer.rb +25 -3
  16. data/lib/webby/resource.rb +89 -13
  17. data/lib/webby/webby_task.rb +19 -41
  18. data/tasks/doc.rake +2 -19
  19. data/tasks/gem.rake +14 -41
  20. data/tasks/manifest.rake +1 -1
  21. data/tasks/rubyforge.rake +57 -0
  22. data/tasks/setup.rb +6 -5
  23. data/tasks/spec.rake +3 -3
  24. data/tasks/website.rake +38 -0
  25. data/website/Rakefile +13 -0
  26. data/website/content/css/blueprint/lib/buttons.css +112 -0
  27. data/website/content/css/blueprint/lib/compressed.css +127 -0
  28. data/website/content/css/blueprint/lib/grid.css +177 -0
  29. data/website/content/css/blueprint/lib/img/baseline-black.png +0 -0
  30. data/website/content/css/blueprint/lib/img/baseline.png +0 -0
  31. data/website/content/css/blueprint/lib/img/grid.png +0 -0
  32. data/website/content/css/blueprint/lib/img/icons/cross.png +0 -0
  33. data/website/content/css/blueprint/lib/img/icons/textfield_key.png +0 -0
  34. data/website/content/css/blueprint/lib/img/icons/tick.png +0 -0
  35. data/website/content/css/blueprint/lib/reset.css +37 -0
  36. data/website/content/css/blueprint/lib/typography.css +159 -0
  37. data/website/content/css/blueprint/print.css +75 -0
  38. data/website/content/css/blueprint/screen.css +34 -0
  39. data/website/content/css/site.css +22 -0
  40. data/website/content/download.txt +8 -0
  41. data/website/content/index.txt +28 -0
  42. data/website/content/tutorial.txt +130 -0
  43. data/website/layouts/default.rhtml +49 -0
  44. data/website/tasks/create.rake +11 -0
  45. data/website/tasks/deploy.rake +22 -0
  46. data/website/tasks/heel.rake +26 -0
  47. data/website/tasks/setup.rb +27 -0
  48. data/website/templates/page.erb +8 -0
  49. metadata +33 -14
@@ -1,4 +1,4 @@
1
- # $Id$
1
+ # $Id: manifest.rake 11 2007-08-23 15:45:16Z tim_pease $
2
2
 
3
3
  require 'find'
4
4
 
@@ -0,0 +1,57 @@
1
+ # $Id: rubyforge.rake 11 2007-08-23 15:45:16Z tim_pease $
2
+
3
+ if PROJ.rubyforge_name && HAVE_RUBYFORGE
4
+
5
+ require 'rubyforge'
6
+ require 'rake/contrib/sshpublisher'
7
+
8
+ namespace :gem do
9
+ desc 'Package and upload to RubyForge'
10
+ task :release => [:clobber, :package] do |t|
11
+ v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
12
+ abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
13
+ pkg = "pkg/#{PROJ.spec.full_name}"
14
+
15
+ if $DEBUG then
16
+ puts "release_id = rf.add_release #{PROJ.rubyforge_name.inspect}, #{PROJ.name.inspect}, #{PROJ.version.inspect}, \"#{pkg}.tgz\""
17
+ puts "rf.add_file #{PROJ.rubyforge_name.inspect}, #{PROJ.name.inspect}, release_id, \"#{pkg}.gem\""
18
+ end
19
+
20
+ rf = RubyForge.new
21
+ puts 'Logging in'
22
+ rf.login
23
+
24
+ c = rf.userconfig
25
+ c['release_notes'] = PROJ.description if PROJ.description
26
+ c['release_changes'] = PROJ.changes if PROJ.changes
27
+ c['preformatted'] = true
28
+
29
+ files = [(PROJ.need_tar ? "#{pkg}.tgz" : nil),
30
+ (PROJ.need_zip ? "#{pkg}.zip" : nil),
31
+ "#{pkg}.gem"].compact
32
+
33
+ puts "Releasing #{PROJ.name} v. #{PROJ.version}"
34
+ rf.add_release PROJ.rubyforge_name, PROJ.name, PROJ.version, *files
35
+ end
36
+ end # namespace :gem
37
+
38
+
39
+ namespace :doc do
40
+ desc "Publish RDoc to RubyForge"
41
+ task :release => %w(doc:clobber_rdoc doc:rdoc) do
42
+ config = YAML.load(
43
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
44
+ )
45
+
46
+ host = "#{config['username']}@rubyforge.org"
47
+ remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge_name}/"
48
+ remote_dir << PROJ.rdoc_remote_dir || PROJ.name
49
+ local_dir = PROJ.rdoc_dir
50
+
51
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
52
+ end
53
+ end # namespace :doc
54
+
55
+ end # if HAVE_RUBYFORGE
56
+
57
+ # EOF
@@ -1,4 +1,4 @@
1
- # $Id: setup.rb 1 2007-08-18 21:39:50Z tim_pease $
1
+ # $Id: setup.rb 13 2007-08-23 22:18:00Z tim_pease $
2
2
 
3
3
  require 'rubygems'
4
4
  require 'ostruct'
@@ -33,6 +33,7 @@ PROJ.rdoc_opts = []
33
33
  PROJ.rdoc_include = %w(^lib ^bin ^ext txt$)
34
34
  PROJ.rdoc_exclude = %w(extconf\.rb$ ^Manifest\.txt$)
35
35
  PROJ.rdoc_main = 'README.txt'
36
+ PROJ.rdoc_dir = 'doc'
36
37
  PROJ.rdoc_remote_dir = nil
37
38
 
38
39
  # Extensions
@@ -86,12 +87,12 @@ SUDO = if WIN32 then ''
86
87
  RCOV = WIN32 ? 'rcov.cmd' : 'rcov'
87
88
  GEM = WIN32 ? 'gem.cmd' : 'gem'
88
89
 
89
- %w(rcov rspec rubyforge).each do |g|
90
+ %w(rcov spec rubyforge).each do |lib|
90
91
  begin
91
- gem g
92
- Object.instance_eval {const_set "HAVE_#{g.upcase}", true}
92
+ require lib
93
+ Object.instance_eval {const_set "HAVE_#{lib.upcase}", true}
93
94
  rescue LoadError
94
- Object.instance_eval {const_set "HAVE_#{g.upcase}", false}
95
+ Object.instance_eval {const_set "HAVE_#{lib.upcase}", false}
95
96
  end
96
97
  end
97
98
 
@@ -1,6 +1,6 @@
1
- # $Id$
1
+ # $Id: spec.rake 13 2007-08-23 22:18:00Z tim_pease $
2
2
 
3
- if HAVE_RSPEC
3
+ if HAVE_SPEC
4
4
 
5
5
  require 'spec/rake/spectask'
6
6
 
@@ -32,6 +32,6 @@ end # namespace :spec
32
32
 
33
33
  task :clobber => 'spec:clobber_rcov' if HAVE_RCOV
34
34
 
35
- end # if HAVE_RSPEC
35
+ end # if HAVE_SPEC
36
36
 
37
37
  # EOF
@@ -0,0 +1,38 @@
1
+ # $Id: website.rake 12 2007-08-23 16:43:11Z tim_pease $
2
+
3
+ namespace :website do
4
+
5
+ desc 'Build the Webby website'
6
+ task :build do
7
+ begin
8
+ olddir = pwd
9
+ chdir 'website'
10
+ sh 'rake build'
11
+ cp_r 'output/.', olddir + '/doc'
12
+ ensure
13
+ chdir olddir
14
+ end
15
+ end
16
+
17
+ desc 'Remove the Webby website'
18
+ task :clobber do
19
+ rm_r 'doc' rescue nil
20
+ end
21
+
22
+ desc 'Publish the website to RubyForge'
23
+ task :release => %w(website:clobber doc:rdoc website:build) do
24
+ config = YAML.load(
25
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
26
+ )
27
+
28
+ host = "#{config['username']}@rubyforge.org"
29
+ remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge_name}/"
30
+
31
+ sh "rsync --delete -rulptzCF doc/ #{host}:#{remote_dir}"
32
+ end
33
+
34
+ end # namespace :website
35
+
36
+ task :clobber => 'website:clobber'
37
+
38
+ # EOF
@@ -0,0 +1,13 @@
1
+
2
+ require 'webby'
3
+ load 'tasks/setup.rb'
4
+
5
+ task :default => :build
6
+
7
+ desc 'deploy the website to Rubyforge'
8
+ task :deploy => [:build, 'deploy:rsync']
9
+
10
+ SITE.host = 'tim_pease@rubyforge.org'
11
+ SITE.remote_dir = '/var/www/gforge-projects/webby/'
12
+
13
+ # EOF
@@ -0,0 +1,112 @@
1
+ /* --------------------------------------------------------------
2
+
3
+ Buttons.css
4
+ * Gives you some great buttons for many purposes.
5
+
6
+ Created by Kevin Hale [particletree.com]
7
+ * particletree.com/features/rediscovering-the-button-element
8
+
9
+ W3C: "Buttons created with the BUTTON element function
10
+ just like buttons created with the INPUT element,
11
+ but they offer richer rendering possibilities."
12
+
13
+ Usage:
14
+
15
+ <button type="submit" class="button positive">
16
+ <img src="css/blueprint/lib/img/icons/tick.png" alt=""/> Save
17
+ </button>
18
+
19
+ <a class="button" href="/password/reset/">
20
+ <img src="css/blueprint/lib/img/icons/textfield_key.png" alt=""/> Change Password
21
+ </a>
22
+
23
+ <a href="#" class="button negative">
24
+ <img src="css/blueprint/lib/img/icons/cross.png" alt=""/> Cancel
25
+ </a>
26
+
27
+
28
+ -------------------------------------------------------------- */
29
+
30
+ a.button, button {
31
+ display:block;
32
+ float:left;
33
+ margin:0 0.583em 0.667em 0;
34
+ padding:5px 10px 6px 7px; /* Links */
35
+
36
+ border:0.1em solid #dedede;
37
+ border-top:0.1em solid #eee;
38
+ border-left:0.1em solid #eee;
39
+
40
+ background-color:#f5f5f5;
41
+ font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
42
+ font-size:100%;
43
+ line-height:130%;
44
+ text-decoration:none;
45
+ font-weight:bold;
46
+ color:#565656;
47
+ cursor:pointer;
48
+ }
49
+ button {
50
+ width:auto;
51
+ overflow:visible;
52
+ padding:4px 10px 3px 7px; /* IE6 */
53
+ }
54
+ button[type] {
55
+ padding:5px 10px 5px 7px; /* Firefox */
56
+ line-height:17px; /* Safari */
57
+ }
58
+ *:first-child+html button[type] {
59
+ padding:4px 10px 3px 7px; /* IE7 */
60
+ }
61
+ button img, a.button img{
62
+ margin:0 3px -3px 0 !important;
63
+ padding:0;
64
+ border:none;
65
+ width:16px;
66
+ height:16px;
67
+ }
68
+
69
+
70
+ /* Button colors
71
+ -------------------------------------------------------------- */
72
+
73
+ /* Standard */
74
+ button:hover, a.button:hover{
75
+ background-color:#dff4ff;
76
+ border:0.1em solid #c2e1ef;
77
+ color:#336699;
78
+ }
79
+ a.button:active{
80
+ background-color:#6299c5;
81
+ border:1px solid #6299c5;
82
+ color:#fff;
83
+ }
84
+
85
+ /* Positive */
86
+ .positive {
87
+ color:#529214;
88
+ }
89
+ a.positive:hover, button.positive:hover {
90
+ background-color:#E6EFC2;
91
+ border:0.1em solid #C6D880;
92
+ color:#529214;
93
+ }
94
+ a.positive:active {
95
+ background-color:#529214;
96
+ border:0.1em solid #529214;
97
+ color:#fff;
98
+ }
99
+
100
+ /* Negative */
101
+ .negative {
102
+ color:#d12f19;
103
+ }
104
+ a.negative:hover, button.negative:hover {
105
+ background:#fbe3e4;
106
+ border:0.1em solid #fbc2c4;
107
+ }
108
+ a.negative:active {
109
+ background-color:#d12f19;
110
+ border:0.1em solid #d12f19;
111
+ color:#fff;
112
+ }
@@ -0,0 +1,127 @@
1
+ /* Blueprint Comressed Version */
2
+
3
+ /* reset.css */
4
+ html,body,div,span,applet,object,iframe, h1,h2,h3,h4,h5,h6,p,blockquote,pre, a,abbr,acronym,address,big,cite,code, del,dfn,em,font,img,ins,kbd,q,s,samp, small,strike,strong,sub,sup,tt,var, dl,dt,dd,ol,ul,li, fieldset,form,label,legend, table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
5
+ body{line-height:1;color:#333;background:white;}
6
+ table{border-collapse:separate;border-spacing:0;}
7
+ caption,th,td{text-align:left;font-weight:normal;}
8
+ blockquote:before,blockquote:after,q:before,q:after{content:"";}
9
+ blockquote,q{quotes:"" "";}
10
+
11
+ /* typograpghy.css */
12
+ body{font-family:"Lucida Grande",Helvetica,Arial,Verdana,sans-serif;line-height:1.5;}
13
+ body{font-size:75%;}
14
+ html > body{font-size:12px;}
15
+ h1,h2,h3,h4,h5,h6{font-family:Helvetica,Arial,"Lucida Grande",Verdana,sans-serif;color:#111;clear:both;}
16
+ h1{font-size:3em;}
17
+ h2{font-size:2em;}
18
+ h3{font-size:1.5em;line-height:2;}
19
+ h4{font-size:1.2em;line-height:1.25;font-weight:bold;}
20
+ h5{font-size:1em;font-weight:bold;}
21
+ h6{font-size:1em;}
22
+ p{margin:0 0 1.5em 0;text-align:justify;}
23
+ p.last{margin-bottom:0;}
24
+ p img{float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
25
+ p img.top{margin-top:0;}
26
+ ul,ol{margin:0 0 1.5em 1.5em;}
27
+ ol{list-style-type:decimal;}
28
+ dl{margin:1.5em 0;}
29
+ dl dt{font-weight:bold;}
30
+ a{color:#125AA7;text-decoration:underline;outline:none;}
31
+ a:hover{color:#000;}
32
+ blockquote{margin:1.5em 0 1.5em 1.5em;color:#666;font-style:italic;}
33
+ strong{font-weight:bold;}
34
+ em{font-style:italic;}
35
+ pre{margin-bottom:1.3em;background:#eee;border:0.1em solid #ddd;padding:1.5em;}
36
+ code{font:0.9em Monaco,monospace;}
37
+ hr{background:#B2CCFF;color:#B2CCFF;clear:both;float:none;width:100%;height:0.1em;margin:0 0 1.4em 0;border:none;}
38
+ * html hr{margin:0 0 1.2em 0;}
39
+ table{margin-bottom:1.4em;border-top:0.1em solid #ddd;border-left:0.1em solid #ddd;}
40
+ th,td{height:1em;padding:0.2em 0.4em;border-bottom:0.1em solid #ddd;border-right:0.1em solid #ddd;}
41
+ th{font-weight:bold;}
42
+ label{font-weight:bold;}
43
+ textarea{height:180px;width:300px;}
44
+ p.small{font-size:0.8em;margin-bottom:1.875em;line-height:1.875em;}
45
+ p.large{font-size:1.2em;line-height:2.5em;}
46
+ p.quiet{color:#666;}
47
+ .hide{display:none;}
48
+ .alt{color:#666;font-family:"Warnock Pro","Goudy Old Style","Palatino","Book Antiqua",serif;font-size:1.2em;line-height:1%;font-style:italic;}
49
+ .dquo{margin-left:-.7em;}
50
+ p.incr,.incr p{font-size:0.83333em;line-height:1.44em;margin-bottom:1.8em;}
51
+
52
+ /* grid.css */
53
+ body{text-align:center;margin:36px 0;}
54
+ .container{text-align:left;position:relative;padding:0;margin:0 auto;width:960px;}
55
+ .column{float:left;margin:0 10px;padding:0;}
56
+ * html .column{overflow-x:hidden;}
57
+ .border{padding-right:9px;margin-right:0;border-right:1px solid #ddd;}
58
+ .first{margin-left:0;}
59
+ .last{margin-right:0;}
60
+ .span-1{width:50px;}
61
+ .span-2{width:120px;}
62
+ .span-3{width:190px;}
63
+ .span-4{width:260px;}
64
+ .span-5{width:330px;}
65
+ .span-6{width:400px;}
66
+ .span-7{width:470px;}
67
+ .span-8{width:540px;}
68
+ .span-9{width:610px;}
69
+ .span-10{width:680px;}
70
+ .span-11{width:750px;}
71
+ .span-12{width:820px;}
72
+ .span-13{width:890px;}
73
+ .span-14{width:960px;margin:0;}
74
+ .append-1{padding-right:70px;}
75
+ .append-2{padding-right:140px;}
76
+ .append-3{padding-right:210px;}
77
+ .append-4{padding-right:280px;}
78
+ .append-5{padding-right:350px;}
79
+ .append-6{padding-right:420px;}
80
+ .append-7{padding-right:490px;}
81
+ .append-8{padding-right:560px;}
82
+ .append-9{padding-right:630px;}
83
+ .append-10{padding-right:700px;}
84
+ .append-11{padding-right:770px;}
85
+ .append-12{padding-right:840px;}
86
+ .append-13{padding-right:910px;}
87
+ .prepend-1{padding-left:70px;}
88
+ .prepend-2{padding-left:140px;}
89
+ .prepend-3{padding-left:210px;}
90
+ .prepend-4{padding-left:280px;}
91
+ .prepend-5{padding-left:350px;}
92
+ .prepend-6{padding-left:420px;}
93
+ .prepend-7{padding-left:490px;}
94
+ .prepend-8{padding-left:560px;}
95
+ .prepend-9{padding-left:630px;}
96
+ .prepend-10{padding-left:700px;}
97
+ .prepend-11{padding-left:770px;}
98
+ .prepend-12{padding-left:840px;}
99
+ .prepend-13{padding-left:910px;}
100
+ .box{padding:1.5em;margin-bottom:1.5em;background:#F0F0F0;}
101
+ .clear{display:inline-block;}
102
+ .clear:after,.container:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
103
+ * html .clear{height:1%;}
104
+ .clear{display:block;}
105
+ img{margin:0 0 1.5em 0;}
106
+ .pull-1{margin-left:-70px;}
107
+ .pull-2{margin-left:-140px;}
108
+ .pull-3{margin-left:-210px;}
109
+ .push-0{margin:0 0 0 1.5em;float:right;}
110
+ .push-1{margin:0 -88px 0 1.5em;float:right;}
111
+ .push-2{margin:0 -158px 0 1.5em;float:right;}
112
+ .push-3{margin:0 -228px 0 1.5em;float:right;}
113
+
114
+ /* buttons.css */
115
+ a.button,button{display:block;float:left;margin:0 0.583em 0.667em 0;padding:5px 10px 6px 7px;border:0.1em solid #dedede;border-top:0.1em solid #eee;border-left:0.1em solid #eee;background-color:#f5f5f5;line-height:130%;text-decoration:none;font-weight:bold;color:#565656;cursor:pointer;font:100% "Lucida Grande",Tahoma,Arial,Verdana,sans-serif}
116
+ button{width:auto;overflow:visible;padding:4px 10px 3px 7px}
117
+ button[type]{padding:5px 10px 5px 7px;line-height:17px}
118
+ *:first-child+html button[type]{padding:4px 10px 3px 7px}
119
+ button img,a.button img{margin:0 3px -3px 0 !important;padding:0;border:none;width:16px;height:16px}
120
+ button:hover,a.button:hover{background-color:#dff4ff;border:0.1em solid #c2e1ef;color:#336699}
121
+ a.button:active{background-color:#6299c5;border:1px solid #6299c5;color:#fff}
122
+ .positive{color:#529214}
123
+ a.positive:hover,button.positive:hover{background-color:#E6EFC2;border:0.1em solid #C6D880;color:#529214}
124
+ a.positive:active{background-color:#529214;border:0.1em solid #529214;color:#fff}
125
+ .negative{color:#d12f19}
126
+ a.negative:hover,button.negative:hover{background:#fbe3e4;border:0.1em solid #fbc2c4}
127
+ a.negative:active{background-color:#d12f19;border:0.1em solid #d12f19;color:#fff}
@@ -0,0 +1,177 @@
1
+ /* --------------------------------------------------------------
2
+
3
+ Grid.css
4
+ * Creates an easy to use grid of 14 columns.
5
+
6
+ Based on work by:
7
+ * Nathan Borror [playgroundblues.com]
8
+ * Jeff Croft [jeffcroft.com]
9
+ * Christian Metts [mintchaos.com]
10
+ * Khoi Vinh [subtraction.com]
11
+
12
+ By default, the grid is 960px wide, with columns
13
+ spanning 50px, and a 20px margin between columns.
14
+
15
+ If you need fewer or more columns, use this
16
+ formula to find the new total width:
17
+
18
+ Total width = (columns * 70) - 20
19
+
20
+ -------------------------------------------------------------- */
21
+
22
+ body {
23
+ text-align: center; /* IE Fix */
24
+ margin:36px 0;
25
+ }
26
+
27
+ /* A container should group all your columns. */
28
+ .container {
29
+ text-align: left;
30
+ position: relative;
31
+ padding: 0;
32
+ margin: 0 auto; /* Centers layout */
33
+ width: 960px; /* Total width */
34
+ }
35
+
36
+
37
+ /* Columns
38
+ -------------------------------------------------------------- */
39
+
40
+ /* Use this class together with the .span-x classes
41
+ to create any compsition of columns in a layout.
42
+ Nesting columns works like a charm (remember .first and .last). */
43
+
44
+ .column {
45
+ float: left;
46
+ margin: 0 10px;
47
+ padding: 0;
48
+ }
49
+ * html .column { overflow-x: hidden; } /* IE6 fix */
50
+
51
+
52
+ /* Add this class to a column if you want a border on its
53
+ right hand side. This should be customized to fit your needs. */
54
+
55
+ .border {
56
+ padding-right: 9px;
57
+ margin-right: 0;
58
+ border-right: 1px solid #ddd;
59
+ }
60
+
61
+
62
+ /* The first and last elements in a multi-column
63
+ block needs one of these classes each. */
64
+
65
+ .first { margin-left: 0; }
66
+ .last { margin-right: 0; }
67
+
68
+
69
+ /* Use these classes to set how wide a column should be. */
70
+ .span-1 { width: 50px; }
71
+ .span-2 { width: 120px; }
72
+ .span-3 { width: 190px; }
73
+ .span-4 { width: 260px; }
74
+ .span-5 { width: 330px; }
75
+ .span-6 { width: 400px; }
76
+ .span-7 { width: 470px; }
77
+ .span-8 { width: 540px; }
78
+ .span-9 { width: 610px; }
79
+ .span-10 { width: 680px; }
80
+ .span-11 { width: 750px; }
81
+ .span-12 { width: 820px; }
82
+ .span-13 { width: 890px; }
83
+ .span-14 { width: 960px; margin: 0; }
84
+
85
+ /* Add these to a column to append empty cols. */
86
+ .append-1 { padding-right: 70px; }
87
+ .append-2 { padding-right: 140px; }
88
+ .append-3 { padding-right: 210px; }
89
+ .append-4 { padding-right: 280px; }
90
+ .append-5 { padding-right: 350px; }
91
+ .append-6 { padding-right: 420px; }
92
+ .append-7 { padding-right: 490px; }
93
+ .append-8 { padding-right: 560px; }
94
+ .append-9 { padding-right: 630px; }
95
+ .append-10 { padding-right: 700px; }
96
+ .append-11 { padding-right: 770px; }
97
+ .append-12 { padding-right: 840px; }
98
+ .append-13 { padding-right: 910px; }
99
+
100
+ /* Add these to a column to prepend empty cols. */
101
+ .prepend-1 { padding-left: 70px; }
102
+ .prepend-2 { padding-left: 140px; }
103
+ .prepend-3 { padding-left: 210px; }
104
+ .prepend-4 { padding-left: 280px; }
105
+ .prepend-5 { padding-left: 350px; }
106
+ .prepend-6 { padding-left: 420px; }
107
+ .prepend-7 { padding-left: 490px; }
108
+ .prepend-8 { padding-left: 560px; }
109
+ .prepend-9 { padding-left: 630px; }
110
+ .prepend-10 { padding-left: 700px; }
111
+ .prepend-11 { padding-left: 770px; }
112
+ .prepend-12 { padding-left: 840px; }
113
+ .prepend-13 { padding-left: 910px; }
114
+
115
+
116
+ /* Use a .box to create a padded box inside a column.
117
+ Sticking to the the baseline. */
118
+
119
+ .box {
120
+ padding: 1.5em;
121
+ margin-bottom: 1.5em;
122
+ background: #f0f0f0;
123
+ }
124
+
125
+
126
+ /* Clearing floats without extra markup
127
+ Based on How To Clear Floats Without Structural Markup by PiE
128
+ [http://www.positioniseverything.net/easyclearing.html] */
129
+
130
+ .clear { display: inline-block; }
131
+ .clear:after, .container:after {
132
+ content: ".";
133
+ display: block;
134
+ height: 0;
135
+ clear: both;
136
+ visibility: hidden;
137
+ }
138
+ * html .clear { height: 1%; }
139
+ .clear { display: block; }
140
+
141
+
142
+ /* Nudge your elements [subtraction.com/archives/2007/0606_nudge_your_e.php]:
143
+ All block elements (not hr) inside a col should have a 5px padding on each side.
144
+ (Not everyone wants this, but feel free to uncomment if you do.)
145
+
146
+ p,ul,ol,dl,h1,h2,h3,h4,h5,h6,
147
+ caption,pre,blockquote,input,textarea {
148
+ padding-left: 5px;
149
+ padding-right: 5px;
150
+ }
151
+ div, table {
152
+ margin-left: 5px;
153
+ margin-right: 5px;
154
+ padding: 0;
155
+ } */
156
+
157
+
158
+ /* Images
159
+ -------------------------------------------------------------- */
160
+
161
+ /* Remember the baseline (typography.css). */
162
+ img { margin: 0 0 1.5em 0; }
163
+
164
+
165
+ /* Use these classes to make an image flow into the column before
166
+ or after it. This techique can also be used on other objects. */
167
+
168
+ .pull-1 { margin-left: -70px; }
169
+ .pull-2 { margin-left: -140px; }
170
+ .pull-3 { margin-left: -210px; }
171
+
172
+ .push-0 { margin: 0 0 0 1.5em; float: right; } /* Right aligns the image. */
173
+ .push-1 { margin: 0 -88px 0 1.5em; float: right; }
174
+ .push-2 { margin: 0 -158px 0 1.5em; float: right; }
175
+ .push-3 { margin: 0 -228px 0 1.5em; float: right; }
176
+
177
+