TwP-webby 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. data/History.txt +11 -0
  2. data/Manifest.txt +45 -2
  3. data/Rakefile +1 -2
  4. data/examples/webby/content/css/site.css +1 -1
  5. data/examples/webby/content/learn/index.txt +1 -1
  6. data/examples/webby/content/release-notes/index.txt +21 -0
  7. data/examples/webby/content/release-notes/rel-0-9-0/index.txt +1 -0
  8. data/examples/webby/content/release-notes/rel-0-9-1/index.txt +93 -0
  9. data/examples/webby/content/tips_and_tricks/index.txt +14 -13
  10. data/examples/webby/content/tutorial/index.txt +13 -9
  11. data/examples/webby/content/user-manual/index.txt +8 -8
  12. data/examples/webby/layouts/default.txt +1 -1
  13. data/lib/webby/apps/main.rb +25 -13
  14. data/lib/webby/auto_builder.rb +2 -0
  15. data/lib/webby/builder.rb +2 -5
  16. data/lib/webby/filters.rb +5 -13
  17. data/lib/webby/renderer.rb +7 -5
  18. data/lib/webby/resources/db.rb +4 -4
  19. data/lib/webby/resources/layout.rb +14 -23
  20. data/lib/webby/resources/meta_file.rb +208 -0
  21. data/lib/webby/resources/page.rb +21 -58
  22. data/lib/webby/resources/partial.rb +10 -4
  23. data/lib/webby/resources/resource.rb +68 -27
  24. data/lib/webby/resources/static.rb +6 -22
  25. data/lib/webby/resources.rb +54 -14
  26. data/lib/webby/stelan/paginator.rb +17 -2
  27. data/lib/webby.rb +2 -1
  28. data/spec/data/Sitefile +9 -0
  29. data/spec/data/content/_partial.txt +10 -0
  30. data/spec/data/content/css/coderay.css +111 -0
  31. data/spec/data/content/css/site.css +67 -0
  32. data/spec/data/content/css/tumblog.css +308 -0
  33. data/spec/data/content/images/tumblog/permalink.gif +0 -0
  34. data/spec/data/content/images/tumblog/rss.gif +0 -0
  35. data/spec/data/content/index.txt +19 -0
  36. data/spec/data/content/photos.txt +21 -0
  37. data/spec/data/content/tumblog/200806/the-noble-chicken/index.txt +12 -0
  38. data/spec/data/content/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/index.txt +12 -0
  39. data/spec/data/content/tumblog/200807/mad-city-chickens/index.txt +10 -0
  40. data/spec/data/content/tumblog/200807/the-wisdom-of-the-dutch/index.txt +11 -0
  41. data/spec/data/content/tumblog/200807/up-a-tree/index.txt +13 -0
  42. data/spec/data/content/tumblog/index.txt +37 -0
  43. data/spec/data/content/tumblog/rss.txt +37 -0
  44. data/spec/data/hooligans/bad_meta_data_1.txt +34 -0
  45. data/spec/data/hooligans/bad_meta_data_2.txt +34 -0
  46. data/spec/data/layouts/default.txt +58 -0
  47. data/spec/data/layouts/tumblog/default.txt +44 -0
  48. data/spec/data/layouts/tumblog/post.txt +15 -0
  49. data/spec/data/lib/breadcrumbs.rb +28 -0
  50. data/spec/data/lib/tumblog_helper.rb +32 -0
  51. data/spec/data/tasks/tumblog.rake +30 -0
  52. data/spec/data/templates/_partial.erb +10 -0
  53. data/spec/data/templates/atom_feed.erb +40 -0
  54. data/spec/data/templates/page.erb +18 -0
  55. data/spec/data/templates/presentation.erb +40 -0
  56. data/spec/data/templates/tumblog/conversation.erb +12 -0
  57. data/spec/data/templates/tumblog/link.erb +10 -0
  58. data/spec/data/templates/tumblog/photo.erb +13 -0
  59. data/spec/data/templates/tumblog/post.erb +12 -0
  60. data/spec/data/templates/tumblog/quote.erb +11 -0
  61. data/spec/spec_helper.rb +37 -0
  62. data/spec/webby/apps/generator_spec.rb +4 -0
  63. data/spec/webby/apps/main_spec.rb +16 -3
  64. data/spec/webby/filters/textile_spec.rb +20 -0
  65. data/spec/webby/renderer_spec.rb +139 -0
  66. data/spec/webby/resources/db_spec.rb +250 -0
  67. data/spec/webby/resources/layout_spec.rb +83 -0
  68. data/spec/webby/resources/meta_file_spec.rb +157 -0
  69. data/spec/webby/resources/page_spec.rb +111 -0
  70. data/spec/webby/resources/partial_spec.rb +58 -0
  71. data/spec/webby/resources/resource_spec.rb +214 -0
  72. data/spec/webby/resources/static_spec.rb +49 -0
  73. data/spec/webby/resources_spec.rb +55 -3
  74. data/tasks/rubyforge.rake +1 -1
  75. metadata +64 -6
  76. data/lib/webby/resources/file.rb +0 -221
  77. data/spec/webby/resources/file_spec.rb +0 -104
@@ -9,18 +9,13 @@ module Webby::Resources
9
9
  #
10
10
  class Static < Resource
11
11
 
12
- # call-seq:
13
- # render => string
14
- #
15
12
  # Returns the contents of the file.
16
13
  #
17
14
  def render
18
- ::File.read(path)
15
+ Webby.deprecated "render", "it is being replaced by the Renderer#render() method"
16
+ self._read
19
17
  end
20
18
 
21
- # call-seq:
22
- # dirty? => true or false
23
- #
24
19
  # Returns +true+ if this static file is newer than its corresponding output
25
20
  # product. The static file needs to be copied to the output directory.
26
21
  #
@@ -29,22 +24,11 @@ class Static < Resource
29
24
  @mtime > ::File.mtime(destination)
30
25
  end
31
26
 
32
- # call-seq:
33
- # destination => string
34
- #
35
- # Returns the path in the output directory where the static file should
36
- # be copied. This path is used to determine if the static file is dirty
37
- # and in need of copying to the output file.
38
- #
39
- def destination
40
- return @dest if defined? @dest and @dest
41
-
42
- @dest = ::File.join(::Webby.site.output_dir, dir, filename)
43
- @dest << '.' << @ext if @ext and !@ext.empty?
44
- @dest
27
+ # :stopdoc:
28
+ def _read
29
+ ::File.read(path)
45
30
  end
46
-
47
- alias :extension :ext
31
+ # :startdoc:
48
32
 
49
33
  end # class Layout
50
34
  end # module Webby::Resources
@@ -44,25 +44,36 @@ module Webby::Resources
44
44
  end
45
45
 
46
46
  # see if we are dealing with a partial
47
- filename = ::Webby::Resources::File.basename(fn)
47
+ filename = self.basename(fn)
48
48
  if %r/\A_/o =~ filename
49
49
  r = ::Webby::Resources::Partial.new(fn)
50
50
  self.partials << r
51
51
  return r
52
52
  end
53
53
 
54
- # see if we are dealing with a static resource
55
- meta = ::Webby::Resources::File.meta_data(fn)
56
- if meta.nil?
57
- r = ::Webby::Resources::Static.new(fn)
58
- self.pages << r
59
- return r
54
+ begin
55
+ fd = ::File.open(fn, 'r')
56
+ mf = MetaFile.new fd
57
+
58
+ # see if we are dealing with a static resource
59
+ unless mf.meta_data?
60
+ r = ::Webby::Resources::Static.new(fn)
61
+ self.pages << r
62
+ return r
63
+ end
64
+
65
+ # this is a renderable page
66
+ mf.each do |meta_data|
67
+ r = ::Webby::Resources::Page.new(fn, meta_data)
68
+ self.pages << r
69
+ r
70
+ end
71
+ rescue MetaFile::Error => err
72
+ logger.error "error loading file #{fn.inspect}"
73
+ logger.error err
74
+ ensure
75
+ fd.close if fd
60
76
  end
61
-
62
- # this is a renderable page
63
- r = ::Webby::Resources::Page.new(fn)
64
- self.pages << r
65
- return r
66
77
  end
67
78
 
68
79
  # Returns a normalized path for the given filename.
@@ -77,7 +88,7 @@ module Webby::Resources
77
88
  def find_layout( filename )
78
89
  return if filename.nil?
79
90
 
80
- fn = ::Webby::Resources::File.basename(filename)
91
+ fn = self.basename(filename)
81
92
  dir = ::File.dirname(filename)
82
93
  dir = '.' == dir ? '' : dir
83
94
 
@@ -87,8 +98,37 @@ module Webby::Resources
87
98
  raise Webby::Error, "could not find layout #{filename.inspect}"
88
99
  end
89
100
 
90
- end # class << self
101
+ # Returns the directory component of the _filename_ with the content
102
+ # directory removed from the beginning if it is present.
103
+ #
104
+ def dirname( filename )
105
+ rgxp = %r/\A(?:#{::Webby.site.content_dir}|#{::Webby.site.layout_dir})\//o
106
+ dirname = ::File.dirname(filename)
107
+ dirname << '/' if dirname.index(?/) == nil
108
+ dirname.sub(rgxp, '')
109
+ end
110
+
111
+ # Returns the last component of the _filename_ with any extension
112
+ # information removed.
113
+ #
114
+ def basename( filename )
115
+ ::File.basename(filename, '.*')
116
+ end
117
+
118
+ # Returns the extension (the portion of file name in path after the
119
+ # period). This method excludes the period from the extension name.
120
+ #
121
+ def extname( filename )
122
+ ::File.extname(filename).tr('.', '')
123
+ end
91
124
 
125
+ # :stopdoc:
126
+ def logger
127
+ @logger ||= ::Logging::Logger[self]
128
+ end
129
+ # :startdoc:
130
+
131
+ end # class << self
92
132
  end # module Webby::Resources
93
133
 
94
134
  Webby.require_all_libs_relative_to(__FILE__)
@@ -18,7 +18,7 @@ class Paginator
18
18
  class MissingCountError < ArgumentError; end
19
19
  class MissingSelectError < ArgumentError; end
20
20
 
21
- attr_reader :per_page, :count, :resource
21
+ attr_reader :per_page, :count, :resource, :filename, :directory
22
22
 
23
23
  # Instantiate a new Paginator object
24
24
  #
@@ -31,6 +31,9 @@ class Paginator
31
31
  # convenience, if the arity is 2)
32
32
  def initialize(count, per_page, resource, &select)
33
33
  @count, @per_page, @resource = count, per_page, resource
34
+ @meta_data = @resource._meta_data.dup
35
+ @filename = @resource.filename
36
+ @directory = @resource.directory
34
37
  unless select
35
38
  raise MissingSelectError, "Must provide block to select data for each page"
36
39
  end
@@ -68,6 +71,11 @@ class Paginator
68
71
  @select.call(*args)
69
72
  })
70
73
  end
74
+
75
+ # Finalizer method that should be called when the paginator is finished
76
+ def done
77
+ resource._reset(@meta_data)
78
+ end
71
79
 
72
80
  # Page object
73
81
  #
@@ -84,7 +92,14 @@ class Paginator
84
92
  @offset = (number - 1) * pager.per_page
85
93
  @select = select
86
94
 
87
- @pager.resource.number = (number == 1 ? nil : number)
95
+ @pager.resource._reset
96
+ if number > 1
97
+ if ::Webby.site.create_mode == 'directory'
98
+ @pager.resource['directory'] = File.join(@pager.directory, number.to_s)
99
+ else
100
+ @pager.resource['filename'] = @pager.filename + number.to_s
101
+ end
102
+ end
88
103
  @url = @pager.resource.url
89
104
  end
90
105
 
data/lib/webby.rb CHANGED
@@ -18,9 +18,10 @@ Logging::Appender.stdout.layout = Logging::Layouts::Pattern.new(
18
18
  module Webby
19
19
 
20
20
  # :stopdoc:
21
- VERSION = '0.9.0' # :nodoc:
21
+ VERSION = '0.9.1' # :nodoc:
22
22
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
23
23
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
24
+ YAML_SEP = '---'
24
25
  # :startdoc:
25
26
 
26
27
  class Error < StandardError; end # :nodoc:
@@ -0,0 +1,9 @@
1
+
2
+ task :default => :build
3
+
4
+ desc 'deploy the site to the webserver'
5
+ task :deploy => [:build, 'deploy:rsync']
6
+
7
+ SITE.create_mode = 'directory'
8
+
9
+ # EOF
@@ -0,0 +1,10 @@
1
+ ---
2
+ filter: erb
3
+ ---
4
+ A partial has access to the page from which it was called. The title below will be the title of the page in which this partial is rendered.
5
+
6
+ <%%= h(@page.title) %>
7
+
8
+ A partial does not have access to it's own meta-data. The partial meta-data is used primarily for finding partials or for use in other pages. The filter(s) specified in the meta-data will be applied to the partial text when it is rendered.
9
+
10
+ A partial does not require meta-data at all. They can contain just text.
@@ -0,0 +1,111 @@
1
+ .CodeRay {
2
+ padding: 0.5em;
3
+ margin-bottom: 1.3em;
4
+ background-color: #eee;
5
+ border: 1px solid #aaa;
6
+ font: 1.1em Monaco, 'Courier New', 'Terminal', monospace;
7
+ color: #100;
8
+ }
9
+ .CodeRay pre {
10
+ padding: 0px;
11
+ margin: 0px;
12
+ overflow: auto;
13
+ background-color: transparent;
14
+ border: none;
15
+ }
16
+
17
+ div.CodeRay { }
18
+
19
+ span.CodeRay { white-space: pre; border: 0px; padding: 2px }
20
+
21
+ table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
22
+ table.CodeRay td { padding: 2px 4px; vertical-align: top }
23
+
24
+ .CodeRay .line_numbers, .CodeRay .no {
25
+ background-color: #def;
26
+ color: gray;
27
+ text-align: right;
28
+ }
29
+ .CodeRay .line_numbers tt { font-weight: bold }
30
+ .CodeRay .no { padding: 0px 4px }
31
+
32
+ ol.CodeRay { font-size: 10pt }
33
+ ol.CodeRay li { white-space: pre }
34
+
35
+ .CodeRay .debug { color:white ! important; background:blue ! important; }
36
+
37
+ .CodeRay .af { color:#00C }
38
+ .CodeRay .an { color:#007 }
39
+ .CodeRay .av { color:#700 }
40
+ .CodeRay .aw { color:#C00 }
41
+ .CodeRay .bi { color:#509; font-weight:bold }
42
+ .CodeRay .c { color:#666; }
43
+
44
+ .CodeRay .ch { color:#04D }
45
+ .CodeRay .ch .k { color:#04D }
46
+ .CodeRay .ch .dl { color:#039 }
47
+
48
+ .CodeRay .cl { color:#B06; font-weight:bold }
49
+ .CodeRay .co { color:#036; font-weight:bold }
50
+ .CodeRay .cr { color:#0A0 }
51
+ .CodeRay .cv { color:#369 }
52
+ .CodeRay .df { color:#099; font-weight:bold }
53
+ .CodeRay .di { color:#088; font-weight:bold }
54
+ .CodeRay .dl { color:black }
55
+ .CodeRay .do { color:#970 }
56
+ .CodeRay .ds { color:#D42; font-weight:bold }
57
+ .CodeRay .e { color:#666; font-weight:bold }
58
+ .CodeRay .en { color:#800; font-weight:bold }
59
+ .CodeRay .er { color:#F00; background-color:#FAA }
60
+ .CodeRay .ex { color:#F00; font-weight:bold }
61
+ .CodeRay .fl { color:#60E; font-weight:bold }
62
+ .CodeRay .fu { color:#06B; font-weight:bold }
63
+ .CodeRay .gv { color:#d70; font-weight:bold }
64
+ .CodeRay .hx { color:#058; font-weight:bold }
65
+ .CodeRay .i { color:#00D; font-weight:bold }
66
+ .CodeRay .ic { color:#B44; font-weight:bold }
67
+
68
+ .CodeRay .il { background: #eee }
69
+ .CodeRay .il .il { background: #ddd }
70
+ .CodeRay .il .il .il { background: #ccc }
71
+ .CodeRay .il .idl { font-weight: bold; color: #888 }
72
+
73
+ .CodeRay .in { color:#B2B; font-weight:bold }
74
+ .CodeRay .iv { color:#33B }
75
+ .CodeRay .la { color:#970; font-weight:bold }
76
+ .CodeRay .lv { color:#963 }
77
+ .CodeRay .oc { color:#40E; font-weight:bold }
78
+ .CodeRay .of { color:#000; font-weight:bold }
79
+ .CodeRay .op { }
80
+ .CodeRay .pc { color:#038; font-weight:bold }
81
+ .CodeRay .pd { color:#369; font-weight:bold }
82
+ .CodeRay .pp { color:#579 }
83
+ .CodeRay .pt { color:#339; font-weight:bold }
84
+ .CodeRay .r { color:#080; font-weight:bold }
85
+
86
+ .CodeRay .rx { background-color:#fff0ff }
87
+ .CodeRay .rx .k { color:#808 }
88
+ .CodeRay .rx .dl { color:#404 }
89
+ .CodeRay .rx .mod { color:#C2C }
90
+ .CodeRay .rx .fu { color:#404; font-weight: bold }
91
+
92
+ .CodeRay .s { background-color:#fff0f0 }
93
+ .CodeRay .s .s { background-color:#ffe0e0 }
94
+ .CodeRay .s .s .s { background-color:#ffd0d0 }
95
+ .CodeRay .s .k { color:#D20 }
96
+ .CodeRay .s .dl { color:#710 }
97
+
98
+ .CodeRay .sh { background-color:#f0fff0 }
99
+ .CodeRay .sh .k { color:#2B2 }
100
+ .CodeRay .sh .dl { color:#161 }
101
+
102
+ .CodeRay .sy { color:#A60 }
103
+ .CodeRay .sy .k { color:#A60 }
104
+ .CodeRay .sy .dl { color:#630 }
105
+
106
+ .CodeRay .ta { color:#070 }
107
+ .CodeRay .tf { color:#070; font-weight:bold }
108
+ .CodeRay .ts { color:#D70; font-weight:bold }
109
+ .CodeRay .ty { color:#339; font-weight:bold }
110
+ .CodeRay .v { color:#036 }
111
+ .CodeRay .xt { color:#444 }
@@ -0,0 +1,67 @@
1
+ ---
2
+ extension: css
3
+ filter: erb
4
+ layout: nil # no layout
5
+
6
+ color:
7
+ border: "#ddd"
8
+ header: "#111"
9
+ link: "#125AA7"
10
+ link-hover: "#000"
11
+ blockquote: "#666"
12
+ box-bg: "#eee"
13
+ highlight: "#B2CCFF"
14
+ quiet: "#666"
15
+ alt: "#666"
16
+ ---
17
+
18
+ body {
19
+ font-family: Verdana, "Bitstream Vera Sans", sans-serif;
20
+ }
21
+
22
+ /* Headings
23
+ * --------------------------------------------------------------------- */
24
+ h1,h2,h3,h4,h5,h6 { color: <%= @page.color['header'] %>; }
25
+
26
+ /* Text Elements
27
+ * --------------------------------------------------------------------- */
28
+ a { color: <%= @page.color['link'] %>; }
29
+ a:hover { color: <%= @page.color['link-hover'] %>; }
30
+ blockquote { color: <%= @page.color['blockquote'] %>; }
31
+
32
+ pre {
33
+ background: <%= @page.color['box-bg'] %>;
34
+ border: 1px solid <%= @page.color['border'] %>;
35
+ }
36
+
37
+ hr {
38
+ background: <%= @page.color['highlight'] %>;
39
+ color: <%= @page.color['highlight'] %>;
40
+ }
41
+
42
+ /* Tables
43
+ * --------------------------------------------------------------------- */
44
+ table {
45
+ border-top: 1px solid <%= @page.color['border'] %>;
46
+ border-left: 1px solid <%= @page.color['border'] %>;
47
+ }
48
+ th,td {
49
+ border-bottom: 1px solid <%= @page.color['border'] %>;
50
+ border-right: 1px solid <%= @page.color['border'] %>;
51
+ }
52
+
53
+ /* Default Classes
54
+ * --------------------------------------------------------------------- */
55
+ p.quiet { color: <%= @page.color['quiet'] %>; }
56
+ .alt { color: <%= @page.color['alt'] %>; }
57
+
58
+ p.title {
59
+ color: #111;
60
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
61
+ font-size: 2em;
62
+ margin-bottom: 0.75em;
63
+ }
64
+
65
+ #header p.title { font-size: 3em; line-height: 1; margin-bottom: 0.5em; }
66
+
67
+ /* EOF */
@@ -0,0 +1,308 @@
1
+ ---
2
+ extension: css
3
+ filter: sass
4
+ layout: nil # no layout
5
+ sass_options:
6
+ :style: :expanded
7
+ ---
8
+ !background = #FFF
9
+ !text = #000
10
+ !border = #CCC
11
+ !header = #6498CC
12
+ !link = #6498CC
13
+ !link_hover = #000
14
+ !blockquote = #666
15
+ !code = #000
16
+ !box_bg = #EEE
17
+ !highlight = #6498CC
18
+ !quiet = #666
19
+ !alt = #666
20
+
21
+ !title = #444
22
+ !description = #777
23
+ !date = #CCC
24
+ !date_brick = #BBD5F1
25
+
26
+ body
27
+ :margin 0px
28
+ :background-color = !background
29
+ :font-family Verdana, Geneva, Arial, sans-serif
30
+
31
+ a
32
+ :color = !link
33
+ :text-decoration none
34
+ &:hover
35
+ :text-decoration underline
36
+
37
+ h1
38
+ :width 600px
39
+ :padding 0px 100px 20px 100px
40
+ :margin 50px auto 40px auto
41
+ :border-bottom = solid 1px !border
42
+ :text-align center
43
+ :font Bold 55px 'Trebuchet MS', Geneva, Arial, sans-serif
44
+ :letter-spacing -2px
45
+ :line-height 50px
46
+ :position relative
47
+
48
+ a
49
+ :color = !title
50
+ :text-decoration none
51
+ &:hover
52
+ :text-decoration none
53
+
54
+ img
55
+ :border-width 0px
56
+ :position absolute
57
+ :right 0px
58
+ :bottom 10px
59
+ :width 43px
60
+ :height 23px
61
+
62
+
63
+ div#content
64
+ :width 420px
65
+ :margin auto
66
+ :position relative
67
+
68
+ div#description
69
+ :position absolute
70
+ :right -170px
71
+ :width 160px
72
+ :text-align right
73
+ :font Normal 17px Verdana, Geneva, Arial, sans-serif
74
+ :line-height 20px
75
+ :color = !description
76
+
77
+ a
78
+ :color = !description
79
+ :text-decoration underline
80
+
81
+ div.post
82
+ :position relative
83
+ :margin-bottom 40px
84
+ :padding-right 20px
85
+
86
+ div.date
87
+ :position absolute
88
+ :left -260px
89
+ :text-align right
90
+ :width 230px
91
+ :white-space nowrap
92
+ :font Normal 34px Verdana, Geneva, Arial, sans-serif
93
+ :letter-spacing -2px
94
+ :color = !date
95
+ :text-transform uppercase
96
+ :line-height 35px
97
+
98
+ div.date_brick
99
+ :float right
100
+ :height 30px
101
+ :width 45px
102
+ :background-color = !highlight
103
+ :color = !date_brick
104
+ :font Bold 12px Verdana, Geneva, Arial, sans-serif
105
+ :text-align center
106
+ :line-height 12px
107
+ :margin-left 10px
108
+ :padding-top 5px
109
+ :letter-spacing 0px
110
+ :overflow hidden
111
+
112
+ img.permalink
113
+ :width 14px
114
+ :height 13px
115
+ :border-width 0px
116
+ :background-color #000
117
+ :display none
118
+ :position absolute
119
+ :right 0px
120
+ :top 0px
121
+ :z-index 10
122
+
123
+ &:hover
124
+ img.permalink
125
+ :display inline
126
+
127
+ h2
128
+ :font Bold 18px 'Trebuchet MS', Geneva, Arial, sans-serif
129
+ :color #6498CC
130
+ :letter-spacing -1px
131
+ :margin 0px 0px 5px 0px
132
+
133
+ a
134
+ :color #6498CC
135
+ :text-decoration none
136
+
137
+ div.caption
138
+ :font-size 14px
139
+ :font-weight bold
140
+ :color #444
141
+ :margin-top 10px
142
+ :padding 0px 20px 0px 20px
143
+
144
+ a
145
+ :color #444
146
+
147
+ // Regular Post
148
+
149
+ div.regular
150
+ :font-size 12px
151
+ :color #444
152
+ :line-height 17px
153
+
154
+ h2
155
+ :font-size 36px
156
+ :line-height 34px
157
+
158
+ blockquote
159
+ :font-style italic
160
+ :border-left solid 2px #444
161
+ :padding-left 10px
162
+
163
+ // Quote Post
164
+
165
+ div.quote
166
+ h2
167
+ :font-size 36px
168
+ :line-height 34px
169
+ a
170
+ :color #6498CC
171
+
172
+ p
173
+ :font Bold 28px Helvetica, sans-serif
174
+ :letter-spacing -1px
175
+ :color #666
176
+
177
+ a
178
+ :color #666
179
+
180
+ big
181
+ :font Bold 60px Georgia, serif
182
+ :line-height 8px
183
+ :vertical-align -20px
184
+
185
+ span.source
186
+ :font Bold 16px Verdana, Geneva, Arial, sans-serif
187
+ :color #444
188
+ :letter-spacing -1px
189
+
190
+ a
191
+ :color #444
192
+
193
+ div.source
194
+ :font-size 16px
195
+ :font-weight Bold
196
+ :color #555
197
+ :margin-top 5px
198
+
199
+ a
200
+ :color #555
201
+
202
+ // Link Post
203
+
204
+ div.link
205
+ h2
206
+ :font-size 36px
207
+ :line-height 34px
208
+
209
+ a.link
210
+ :font Bold 20px Verdana, Geneva, Arial, sans-serif
211
+ :letter-spacing -1px
212
+ :color #C00
213
+
214
+ span.description
215
+ :font-size 13px
216
+ :font-weight normal
217
+ :letter-spacing -1px
218
+ :color #444
219
+
220
+ // Conversation Post
221
+
222
+ div.conversation
223
+ ul
224
+ :list-style-type none
225
+ :margin 0px
226
+ :padding 0px 0px 0px 1px
227
+
228
+ li
229
+ :font-size 12px
230
+ :padding 4px 10px 4px 8px
231
+ :color #444
232
+ :margin-bottom 1px
233
+
234
+ span.label
235
+ :font-weight bold
236
+
237
+ span.user_1
238
+ :color #C00
239
+
240
+ span.user_2
241
+ :color #00C
242
+
243
+ span.user_3
244
+ :color #0A0
245
+
246
+ li.odd
247
+ :background-color #F4F4F4
248
+
249
+ li.even
250
+ :background-color #E8E8E8
251
+
252
+ h2
253
+ :font-size 36px
254
+ :line-height 34px
255
+ :position relative
256
+ :top -4px
257
+ :margin-top 0px
258
+ :padding-top 0px
259
+
260
+ // Photo Post
261
+
262
+ div.photo
263
+ h2
264
+ :font-size 36px
265
+ :line-height 34px
266
+
267
+ p.caption
268
+ :font-size 11px
269
+ :color #444
270
+ :margin-top 5px
271
+ a
272
+ :color #444
273
+
274
+ // Video Post
275
+
276
+ div.video
277
+ :width 400px
278
+ :margin auto
279
+
280
+ h2
281
+ :font-size 36px
282
+ :line-height 40px
283
+ :letter-spacing -1px
284
+ :font-weight Bold
285
+ :font-family 'Trebuchet MS', Geneva, Arial, sans-serif
286
+ :margin 0px 0px 5px 0px
287
+
288
+ // Footer
289
+
290
+ div#footer
291
+ :margin 40px 0px 30px 0px
292
+ :text-align center
293
+ :font-size 15px
294
+ :font-weight bold
295
+ :color #444
296
+
297
+ a
298
+ :text-decoration none
299
+ :color #444
300
+
301
+ &:hover
302
+ :text-decoration underline
303
+
304
+ div#credit
305
+ :font Normal 13px Verdana, Geneva, Arial, sans-serif
306
+ :margin-top 15px
307
+
308
+ // EOF