TwP-webby 0.9.0 → 0.9.1
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/History.txt +11 -0
- data/Manifest.txt +45 -2
- data/Rakefile +1 -2
- data/examples/webby/content/css/site.css +1 -1
- data/examples/webby/content/learn/index.txt +1 -1
- data/examples/webby/content/release-notes/index.txt +21 -0
- data/examples/webby/content/release-notes/rel-0-9-0/index.txt +1 -0
- data/examples/webby/content/release-notes/rel-0-9-1/index.txt +93 -0
- data/examples/webby/content/tips_and_tricks/index.txt +14 -13
- data/examples/webby/content/tutorial/index.txt +13 -9
- data/examples/webby/content/user-manual/index.txt +8 -8
- data/examples/webby/layouts/default.txt +1 -1
- data/lib/webby/apps/main.rb +25 -13
- data/lib/webby/auto_builder.rb +2 -0
- data/lib/webby/builder.rb +2 -5
- data/lib/webby/filters.rb +5 -13
- data/lib/webby/renderer.rb +7 -5
- data/lib/webby/resources/db.rb +4 -4
- data/lib/webby/resources/layout.rb +14 -23
- data/lib/webby/resources/meta_file.rb +208 -0
- data/lib/webby/resources/page.rb +21 -58
- data/lib/webby/resources/partial.rb +10 -4
- data/lib/webby/resources/resource.rb +68 -27
- data/lib/webby/resources/static.rb +6 -22
- data/lib/webby/resources.rb +54 -14
- data/lib/webby/stelan/paginator.rb +17 -2
- data/lib/webby.rb +2 -1
- data/spec/data/Sitefile +9 -0
- data/spec/data/content/_partial.txt +10 -0
- data/spec/data/content/css/coderay.css +111 -0
- data/spec/data/content/css/site.css +67 -0
- data/spec/data/content/css/tumblog.css +308 -0
- data/spec/data/content/images/tumblog/permalink.gif +0 -0
- data/spec/data/content/images/tumblog/rss.gif +0 -0
- data/spec/data/content/index.txt +19 -0
- data/spec/data/content/photos.txt +21 -0
- data/spec/data/content/tumblog/200806/the-noble-chicken/index.txt +12 -0
- data/spec/data/content/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/index.txt +12 -0
- data/spec/data/content/tumblog/200807/mad-city-chickens/index.txt +10 -0
- data/spec/data/content/tumblog/200807/the-wisdom-of-the-dutch/index.txt +11 -0
- data/spec/data/content/tumblog/200807/up-a-tree/index.txt +13 -0
- data/spec/data/content/tumblog/index.txt +37 -0
- data/spec/data/content/tumblog/rss.txt +37 -0
- data/spec/data/hooligans/bad_meta_data_1.txt +34 -0
- data/spec/data/hooligans/bad_meta_data_2.txt +34 -0
- data/spec/data/layouts/default.txt +58 -0
- data/spec/data/layouts/tumblog/default.txt +44 -0
- data/spec/data/layouts/tumblog/post.txt +15 -0
- data/spec/data/lib/breadcrumbs.rb +28 -0
- data/spec/data/lib/tumblog_helper.rb +32 -0
- data/spec/data/tasks/tumblog.rake +30 -0
- data/spec/data/templates/_partial.erb +10 -0
- data/spec/data/templates/atom_feed.erb +40 -0
- data/spec/data/templates/page.erb +18 -0
- data/spec/data/templates/presentation.erb +40 -0
- data/spec/data/templates/tumblog/conversation.erb +12 -0
- data/spec/data/templates/tumblog/link.erb +10 -0
- data/spec/data/templates/tumblog/photo.erb +13 -0
- data/spec/data/templates/tumblog/post.erb +12 -0
- data/spec/data/templates/tumblog/quote.erb +11 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/webby/apps/generator_spec.rb +4 -0
- data/spec/webby/apps/main_spec.rb +16 -3
- data/spec/webby/filters/textile_spec.rb +20 -0
- data/spec/webby/renderer_spec.rb +139 -0
- data/spec/webby/resources/db_spec.rb +250 -0
- data/spec/webby/resources/layout_spec.rb +83 -0
- data/spec/webby/resources/meta_file_spec.rb +157 -0
- data/spec/webby/resources/page_spec.rb +111 -0
- data/spec/webby/resources/partial_spec.rb +58 -0
- data/spec/webby/resources/resource_spec.rb +214 -0
- data/spec/webby/resources/static_spec.rb +49 -0
- data/spec/webby/resources_spec.rb +55 -3
- data/tasks/rubyforge.rake +1 -1
- metadata +64 -6
- data/lib/webby/resources/file.rb +0 -221
- 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
|
-
|
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
|
-
#
|
33
|
-
|
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
|
data/lib/webby/resources.rb
CHANGED
@@ -44,25 +44,36 @@ module Webby::Resources
|
|
44
44
|
end
|
45
45
|
|
46
46
|
# see if we are dealing with a partial
|
47
|
-
filename =
|
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
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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 =
|
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
|
-
|
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.
|
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.
|
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:
|
data/spec/data/Sitefile
ADDED
@@ -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
|