webby 0.1.0 → 0.2.0

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.
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
+