webby 0.9.3-x86-mswin32 → 0.9.4-x86-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +20 -0
- data/{README.txt → README.rdoc} +9 -9
- data/Rakefile +19 -6
- data/examples/blog/content/css/blueprint/ie.css +26 -0
- data/examples/blog/content/css/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/buttons/icons/key.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/examples/{website/content/css/blueprint/plugins/buttons/Readme → blog/content/css/blueprint/plugins/buttons/readme.txt} +3 -2
- data/examples/{website/content/css/blueprint/plugins/buttons/buttons.css → blog/content/css/blueprint/plugins/buttons/screen.css} +1 -1
- data/examples/blog/content/css/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/examples/{website/content/css/blueprint/plugins/fancy-type/fancy-type.css → blog/content/css/blueprint/plugins/fancy-type/screen.css} +2 -5
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/readme.txt +18 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/screen.css +40 -0
- data/examples/blog/content/css/blueprint/plugins/rtl/readme.txt +10 -0
- data/examples/blog/content/css/blueprint/plugins/rtl/screen.css +109 -0
- data/examples/blog/content/css/blueprint/print.css +30 -0
- data/examples/blog/content/css/blueprint/screen.css +251 -0
- data/examples/blog/content/css/blueprint/src/forms.css +49 -0
- data/examples/blog/content/css/blueprint/src/grid.css +212 -0
- data/examples/{website/content/css/blueprint/lib → blog/content/css/blueprint/src}/grid.png +0 -0
- data/examples/blog/content/css/blueprint/src/ie.css +59 -0
- data/examples/blog/content/css/blueprint/src/print.css +85 -0
- data/examples/{website/content/css/blueprint/lib → blog/content/css/blueprint/src}/reset.css +14 -15
- data/examples/blog/content/css/blueprint/src/typography.css +105 -0
- data/examples/blog/content/css/coderay.css +111 -0
- data/examples/blog/content/css/site.css +67 -0
- data/examples/blog/layouts/default.txt +61 -0
- data/examples/blog/tasks/blog.rake +5 -1
- data/examples/presentation/Sitefile +2 -2
- data/examples/tumblog/tasks/tumblog.rake +5 -1
- data/examples/webby/Sitefile +2 -2
- data/examples/webby/content/communicate/index.txt +2 -2
- data/examples/webby/content/index.txt +1 -1
- data/examples/webby/content/release-notes/rel-0-9-3/index.txt +0 -2
- data/examples/webby/content/release-notes/rel-0-9-4/index.txt +33 -0
- data/examples/webby/content/sitemap.txt +2 -2
- data/examples/webby/content/user-manual/index.txt +3 -3
- data/examples/website/content/css/blueprint/ie.css +26 -0
- data/examples/website/content/css/blueprint/plugins/buttons/readme.txt +32 -0
- data/examples/website/content/css/blueprint/plugins/buttons/screen.css +97 -0
- data/examples/website/content/css/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/examples/website/content/css/blueprint/plugins/fancy-type/screen.css +71 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/readme.txt +18 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/screen.css +40 -0
- data/examples/website/content/css/blueprint/plugins/rtl/readme.txt +10 -0
- data/examples/website/content/css/blueprint/plugins/rtl/screen.css +109 -0
- data/examples/website/content/css/blueprint/print.css +30 -68
- data/examples/website/content/css/blueprint/screen.css +251 -22
- data/examples/website/content/css/blueprint/src/forms.css +49 -0
- data/examples/website/content/css/blueprint/src/grid.css +212 -0
- data/examples/website/content/css/blueprint/src/grid.png +0 -0
- data/examples/website/content/css/blueprint/src/ie.css +59 -0
- data/examples/website/content/css/blueprint/src/print.css +85 -0
- data/examples/website/content/css/blueprint/src/reset.css +38 -0
- data/examples/website/content/css/blueprint/src/typography.css +105 -0
- data/examples/website/layouts/default.txt +5 -2
- data/lib/webby.rb +36 -102
- data/lib/webby/apps/generator.rb +2 -2
- data/lib/webby/apps/main.rb +36 -62
- data/lib/webby/auto_builder.rb +3 -3
- data/lib/webby/builder.rb +5 -13
- data/lib/webby/config.rb +172 -0
- data/lib/webby/filters.rb +2 -0
- data/lib/webby/filters/haml.rb +13 -0
- data/lib/webby/filters/maruku.rb +16 -0
- data/lib/webby/filters/outline.rb +1 -1
- data/lib/webby/filters/sass.rb +14 -0
- data/lib/webby/filters/slides.rb +2 -2
- data/lib/webby/filters/tidy.rb +5 -0
- data/lib/webby/helpers/coderay_helper.rb +27 -3
- data/lib/webby/helpers/graphviz_helper.rb +20 -3
- data/lib/webby/helpers/tex_img_helper.rb +25 -5
- data/lib/webby/helpers/ultraviolet_helper.rb +19 -5
- data/lib/webby/link_validator.rb +59 -51
- data/lib/webby/renderer.rb +9 -6
- data/lib/webby/resources.rb +2 -1
- data/lib/webby/resources/page.rb +4 -1
- data/lib/webby/tasks/create.rake +1 -1
- data/lib/webby/tasks/validate.rake +1 -1
- data/spec/data/html/anchor.html +11 -0
- data/spec/data/html/external.html +10 -0
- data/spec/data/html/invalid-relative.html +10 -0
- data/spec/data/html/relative-anchor.html +10 -0
- data/spec/data/html/relative-invalid-anchor.html +10 -0
- data/spec/data/html/relative.html +10 -0
- data/spec/data/site/tasks/tumblog.rake +5 -1
- data/spec/spec_helper.rb +8 -1
- data/spec/webby/apps/generator_spec.rb +36 -3
- data/spec/webby/apps/main_spec.rb +2 -1
- data/spec/webby/filters/basepath_spec.rb +2 -2
- data/spec/webby/filters/maruku_spec.rb +31 -0
- data/spec/webby/filters/textile_spec.rb +15 -4
- data/spec/webby/helpers/capture_helper_spec.rb +1 -1
- data/spec/webby/link_validator_spec.rb +154 -0
- data/spec/webby/resources/db_spec.rb +24 -24
- data/spec/webby/resources/layout_spec.rb +1 -1
- data/spec/webby/resources/page_spec.rb +8 -2
- data/spec/webby/resources/resource_spec.rb +1 -1
- data/spec/webby/resources_spec.rb +1 -1
- data/tasks/ann.rake +1 -2
- data/tasks/bones.rake +0 -1
- data/tasks/gem.rake +48 -34
- data/tasks/git.rake +0 -1
- data/tasks/mswin32.rake +38 -0
- data/tasks/notes.rake +0 -1
- data/tasks/post_load.rake +4 -9
- data/tasks/rdoc.rake +4 -4
- data/tasks/setup.rb +50 -26
- data/tasks/spec.rake +1 -2
- data/tasks/svn.rake +47 -0
- data/tasks/test.rake +40 -0
- data/tasks/website.rake +0 -1
- data/tasks/zentest.rake +36 -0
- metadata +104 -33
- data/Manifest.txt +0 -228
- data/examples/website/content/css/blueprint/License.txt +0 -21
- data/examples/website/content/css/blueprint/Readme.txt +0 -100
- data/examples/website/content/css/blueprint/compressed/print.css +0 -76
- data/examples/website/content/css/blueprint/compressed/screen.css +0 -696
- data/examples/website/content/css/blueprint/lib/forms.css +0 -45
- data/examples/website/content/css/blueprint/lib/grid.css +0 -193
- data/examples/website/content/css/blueprint/lib/ie.css +0 -30
- data/examples/website/content/css/blueprint/lib/typography.css +0 -116
- data/examples/website/content/css/blueprint/plugins/css-classes/Readme +0 -14
- data/examples/website/content/css/blueprint/plugins/css-classes/css-classes.css +0 -24
- data/examples/website/content/css/blueprint/plugins/fancy-type/Readme +0 -22
- data/examples/website/content/css/blueprint/plugins/fancy-type/fancy-type-compressed.css +0 -5
- data/lib/webby/stelan/spawner.rb +0 -339
- data/tasks/manifest.rake +0 -48
@@ -3,6 +3,20 @@
|
|
3
3
|
|
4
4
|
if try_require 'uv'
|
5
5
|
|
6
|
+
Loquacious.configuration_for(:webby) {
|
7
|
+
desc "Options for UltraViolet syntax highlighting."
|
8
|
+
uv {
|
9
|
+
desc 'The language to highlight (ruby, c, html, ...).'
|
10
|
+
lang 'ruby'
|
11
|
+
|
12
|
+
desc 'Display line numbers (true, false).'
|
13
|
+
line_numbers false
|
14
|
+
|
15
|
+
desc 'See the UltraViolet documentation for a list of available themes.'
|
16
|
+
theme 'mac_classic'
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
6
20
|
module Webby::Helpers
|
7
21
|
module UltraVioletHelper
|
8
22
|
|
@@ -39,13 +53,13 @@ module UltraVioletHelper
|
|
39
53
|
return if text.empty?
|
40
54
|
|
41
55
|
defaults = ::Webby.site.uv
|
42
|
-
lang = opts.getopt(:lang, defaults
|
43
|
-
line_numbers = opts.getopt(:line_numbers, defaults
|
44
|
-
theme = opts.getopt(:theme, defaults
|
56
|
+
lang = opts.getopt(:lang, defaults.lang)
|
57
|
+
line_numbers = opts.getopt(:line_numbers, defaults.line_numbers)
|
58
|
+
theme = opts.getopt(:theme, defaults.theme)
|
45
59
|
|
46
|
-
out =
|
60
|
+
out = %Q{<div class="UltraViolet">\n}
|
47
61
|
out << Uv.parse(text, "xhtml", lang, line_numbers, theme)
|
48
|
-
out <<
|
62
|
+
out << %Q{\n</div>}
|
49
63
|
|
50
64
|
# put some guards around the output (specifically for textile)
|
51
65
|
out = _guard(out)
|
data/lib/webby/link_validator.rb
CHANGED
@@ -56,18 +56,18 @@ class LinkValidator
|
|
56
56
|
@log.info "validating #{fn}"
|
57
57
|
|
58
58
|
dir = ::File.dirname(fn)
|
59
|
-
|
59
|
+
doc = Hpricot(::File.read(fn))
|
60
60
|
|
61
61
|
::Webby.site.xpaths.each do |xpath|
|
62
62
|
@attr_name = nil
|
63
63
|
|
64
|
-
|
65
|
-
|
66
|
-
uri = URI.parse(element.get_attribute(
|
67
|
-
validate_uri(uri, dir)
|
64
|
+
doc.search(xpath).each do |element|
|
65
|
+
attr_name ||= @attr_rgxp.match(xpath)[1]
|
66
|
+
uri = URI.parse(element.get_attribute(attr_name))
|
67
|
+
validate_uri(uri, dir, doc)
|
68
68
|
end
|
69
69
|
end
|
70
|
-
|
70
|
+
return nil # side effect of original implementation
|
71
71
|
end
|
72
72
|
|
73
73
|
# Validate the the page the _uri_ refers to actually exists. The directory
|
@@ -80,54 +80,15 @@ class LinkValidator
|
|
80
80
|
# will only take place if the LinkValidator was created with the :external
|
81
81
|
# flag set to true.
|
82
82
|
#
|
83
|
-
def validate_uri( uri, dir )
|
84
|
-
#
|
85
|
-
if uri.
|
86
|
-
return validate_anchor(uri, @doc) if uri.path.empty?
|
87
|
-
|
88
|
-
path = if uri.path =~ %r/^\//
|
89
|
-
::File.join(::Webby.site.output_dir, uri.path)
|
90
|
-
else
|
91
|
-
::File.join(dir, uri.path)
|
92
|
-
end
|
93
|
-
path = ::File.join(path, 'index.html') if ::File.extname(path).empty?
|
94
|
-
|
95
|
-
uri_str = path.dup
|
96
|
-
(uri_str << '#' << uri.fragment) if uri.fragment
|
97
|
-
return if @valid_uris.include? uri_str
|
98
|
-
|
99
|
-
if test ?f, path
|
100
|
-
valid = if uri.fragment
|
101
|
-
validate_anchor(uri, Hpricot(::File.read(path)))
|
102
|
-
else true end
|
103
|
-
@valid_uris << uri_str if valid
|
104
|
-
else
|
105
|
-
@log.error "invalid URI '#{uri.to_s}'"
|
106
|
-
end
|
107
|
-
|
108
|
-
# if the URI responds to the open mehod, then try to access the URI
|
109
|
-
elsif uri.respond_to? :open
|
110
|
-
return unless @validate_externals
|
111
|
-
return if @valid_uris.include? uri.to_s
|
83
|
+
def validate_uri( uri, dir, doc )
|
84
|
+
# do not retry external uris that have already been validated
|
85
|
+
return if @valid_uris.include? uri.to_s
|
112
86
|
|
113
|
-
|
114
|
-
|
115
|
-
return
|
116
|
-
end
|
117
|
-
|
118
|
-
begin
|
119
|
-
uri.open {|_| nil}
|
120
|
-
@valid_uris << uri.to_s
|
121
|
-
rescue Exception
|
122
|
-
@log.error "could not open URI '#{uri.to_s}'"
|
123
|
-
@invalid_uris << uri.to_s
|
124
|
-
end
|
87
|
+
return validate_relative_uri(uri, dir, doc) if uri.relative?
|
88
|
+
return validate_external_uri(uri, dir, doc) if uri.respond_to? :open
|
125
89
|
|
126
90
|
# otherwise, post a warning that the URI could not be validated
|
127
|
-
|
128
|
-
return if @valid_uris.include? uri.to_s
|
129
|
-
@log.warn "could not validate URI '#{uri.to_s}'"
|
130
|
-
end
|
91
|
+
@log.warn "could not validate URI '#{uri.to_s}'"
|
131
92
|
end
|
132
93
|
|
133
94
|
# Validate that the anchor fragment of the URI exists in the given
|
@@ -146,6 +107,53 @@ class LinkValidator
|
|
146
107
|
else true end
|
147
108
|
end
|
148
109
|
|
110
|
+
# Validate that the file pointed to by the relative URI exists in the output
|
111
|
+
# directory. If the URI has an anchor, validate that the anchor exists as
|
112
|
+
# well.
|
113
|
+
#
|
114
|
+
def validate_relative_uri( uri, dir, doc )
|
115
|
+
return validate_anchor(uri, doc) if uri.path.empty?
|
116
|
+
|
117
|
+
path = if uri.path =~ %r/^\//
|
118
|
+
::File.join(::Webby.site.output_dir, uri.path)
|
119
|
+
else
|
120
|
+
::File.join(dir, uri.path)
|
121
|
+
end
|
122
|
+
path = ::File.join(path, 'index.html') if ::File.extname(path).empty?
|
123
|
+
|
124
|
+
uri_str = path.dup
|
125
|
+
(uri_str << '#' << uri.fragment) if uri.fragment
|
126
|
+
return if @valid_uris.include? uri_str
|
127
|
+
|
128
|
+
if test ?f, path
|
129
|
+
valid = if uri.fragment
|
130
|
+
validate_anchor(uri, Hpricot(::File.read(path)))
|
131
|
+
else true end
|
132
|
+
@valid_uris << uri_str if valid
|
133
|
+
else
|
134
|
+
@log.error "invalid URI '#{uri.to_s}'"
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
# Validate that an external URI can be opened
|
139
|
+
#
|
140
|
+
def validate_external_uri( uri, dir, doc )
|
141
|
+
return unless @validate_externals
|
142
|
+
|
143
|
+
if @invalid_uris.include? uri.to_s
|
144
|
+
@log.error "could not open URI '#{uri.to_s}'"
|
145
|
+
return
|
146
|
+
end
|
147
|
+
|
148
|
+
begin
|
149
|
+
uri.open {|_| nil}
|
150
|
+
@valid_uris << uri.to_s
|
151
|
+
rescue Exception
|
152
|
+
@log.error "could not open URI '#{uri.to_s}'"
|
153
|
+
@invalid_uris << uri.to_s
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
149
157
|
end # class LinkValidator
|
150
158
|
end # module Webby
|
151
159
|
|
data/lib/webby/renderer.rb
CHANGED
@@ -36,12 +36,15 @@ class Renderer
|
|
36
36
|
renderer = self.new(page)
|
37
37
|
|
38
38
|
loop {
|
39
|
-
|
39
|
+
dest = page.destination
|
40
|
+
FileUtils.mkdir_p ::File.dirname(dest)
|
40
41
|
journal.create_or_update(page)
|
41
42
|
|
42
|
-
|
43
|
-
|
43
|
+
text = renderer._layout_page
|
44
|
+
unless text.nil?
|
45
|
+
::File.open(dest, 'w') {|fd| fd.write(text)}
|
44
46
|
end
|
47
|
+
|
45
48
|
break unless renderer._next_page
|
46
49
|
}
|
47
50
|
end
|
@@ -234,10 +237,10 @@ class Renderer
|
|
234
237
|
rescue ::Webby::Error => err
|
235
238
|
logger.error "while rendering page '#{@page.path}'"
|
236
239
|
logger.error err.message
|
237
|
-
|
240
|
+
return nil
|
241
|
+
rescue Exception => err
|
238
242
|
logger.error "while rendering page '#{@page.path}'"
|
239
243
|
logger.fatal err
|
240
|
-
exit 1
|
241
244
|
ensure
|
242
245
|
@content = nil
|
243
246
|
@@stack.clear
|
@@ -336,7 +339,7 @@ class Renderer
|
|
336
339
|
# the partial. If a full path is given, then the partial is searched for
|
337
340
|
# in that directory.
|
338
341
|
#
|
339
|
-
#
|
342
|
+
# Raises a Webby::Error if the partial could not be found.
|
340
343
|
#
|
341
344
|
def _find_partial( part )
|
342
345
|
case part
|
data/lib/webby/resources.rb
CHANGED
@@ -86,7 +86,8 @@ module Webby::Resources
|
|
86
86
|
# +nil+ if no layout exists under that filename.
|
87
87
|
#
|
88
88
|
def find_layout( filename )
|
89
|
-
return
|
89
|
+
return unless filename
|
90
|
+
filename = filename.to_s
|
90
91
|
|
91
92
|
fn = self.basename(filename)
|
92
93
|
dir = ::File.dirname(filename)
|
data/lib/webby/resources/page.rb
CHANGED
data/lib/webby/tasks/create.rake
CHANGED
@@ -13,7 +13,7 @@ namespace :create do
|
|
13
13
|
page, title, dir = Webby::Builder.new_page_info
|
14
14
|
page = Webby::Builder.create(page, :from => template,
|
15
15
|
:locals => {:title => title, :directory => dir})
|
16
|
-
|
16
|
+
Webby.exec_editor(page)
|
17
17
|
end
|
18
18
|
end # each
|
19
19
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
+
<title>Anchor</title>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<a href="#anchor"></a>
|
9
|
+
<a id="anchor"></a>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
+
<title>Anchor</title>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<a href="http://www.google.com"></a>
|
9
|
+
</body>
|
10
|
+
</html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
+
<title>Anchor</title>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<a href="/invalid.html"></a>
|
9
|
+
</body>
|
10
|
+
</html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
+
<title>Anchor</title>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<a href="/anchor.html#anchor"></a>
|
9
|
+
</body>
|
10
|
+
</html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
+
<title>Anchor</title>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<a href="/anchor.html#invalid"></a>
|
9
|
+
</body>
|
10
|
+
</html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
+
<title>Anchor</title>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<a href="/anchor.html"></a>
|
9
|
+
</body>
|
10
|
+
</html>
|
@@ -1,3 +1,7 @@
|
|
1
|
+
Loquacious.configuration_for(:webby) {
|
2
|
+
desc "The default directory where new tumblog posts will be created."
|
3
|
+
tumblog_dir 'blog'
|
4
|
+
}
|
1
5
|
|
2
6
|
namespace :tumblog do
|
3
7
|
|
@@ -21,7 +25,7 @@ namespace :tumblog do
|
|
21
25
|
page = File.join(dir, File.basename(page))
|
22
26
|
page = Webby::Builder.create(page, :from => template,
|
23
27
|
:locals => {:title => title, :directory => dir})
|
24
|
-
|
28
|
+
Webby.exec_editor(page)
|
25
29
|
end
|
26
30
|
end # each
|
27
31
|
|
data/spec/spec_helper.rb
CHANGED
@@ -3,10 +3,17 @@
|
|
3
3
|
unless defined? WEBBY_SPEC_HELPER
|
4
4
|
WEBBY_SPEC_HELPER = true
|
5
5
|
|
6
|
-
require 'rubygems'
|
7
6
|
require 'fileutils'
|
8
7
|
require 'stringio'
|
9
8
|
|
9
|
+
begin
|
10
|
+
require 'fake_web'
|
11
|
+
$test_externals = true
|
12
|
+
rescue LoadError
|
13
|
+
retry if require 'rubygems'
|
14
|
+
$test_externals = false
|
15
|
+
end
|
16
|
+
|
10
17
|
require File.expand_path(
|
11
18
|
File.join(File.dirname(__FILE__), %w[.. lib webby]))
|
12
19
|
|
@@ -36,13 +36,14 @@ describe Webby::Apps::Generator do
|
|
36
36
|
"content",
|
37
37
|
"content/css",
|
38
38
|
"content/css/blueprint",
|
39
|
-
"content/css/blueprint/compressed",
|
40
|
-
"content/css/blueprint/lib",
|
41
39
|
"content/css/blueprint/plugins",
|
42
40
|
"content/css/blueprint/plugins/buttons",
|
43
41
|
"content/css/blueprint/plugins/buttons/icons",
|
44
|
-
"content/css/blueprint/plugins/css-classes",
|
45
42
|
"content/css/blueprint/plugins/fancy-type",
|
43
|
+
"content/css/blueprint/plugins/link-icons",
|
44
|
+
"content/css/blueprint/plugins/link-icons/icons",
|
45
|
+
"content/css/blueprint/plugins/rtl",
|
46
|
+
"content/css/blueprint/src",
|
46
47
|
"layouts",
|
47
48
|
"lib",
|
48
49
|
"templates"
|
@@ -51,6 +52,38 @@ describe Webby::Apps::Generator do
|
|
51
52
|
h["layouts"].should == %w[layouts/default.txt]
|
52
53
|
end
|
53
54
|
|
55
|
+
it "should return a list of all the blog files from the template" do
|
56
|
+
@generator.parse %w[blog foo]
|
57
|
+
|
58
|
+
h = @generator.site_files
|
59
|
+
h.keys.sort.should == [
|
60
|
+
"",
|
61
|
+
"content",
|
62
|
+
"content/css",
|
63
|
+
"content/css/blueprint",
|
64
|
+
"content/css/blueprint/plugins",
|
65
|
+
"content/css/blueprint/plugins/buttons",
|
66
|
+
"content/css/blueprint/plugins/buttons/icons",
|
67
|
+
"content/css/blueprint/plugins/fancy-type",
|
68
|
+
"content/css/blueprint/plugins/link-icons",
|
69
|
+
"content/css/blueprint/plugins/link-icons/icons",
|
70
|
+
"content/css/blueprint/plugins/rtl",
|
71
|
+
"content/css/blueprint/src",
|
72
|
+
"layouts",
|
73
|
+
"tasks",
|
74
|
+
"templates",
|
75
|
+
"templates/blog"
|
76
|
+
]
|
77
|
+
h["layouts"].should == %w[layouts/default.txt]
|
78
|
+
h["tasks"].should == %w[tasks/blog.rake]
|
79
|
+
h["templates"].should == %w[templates/atom_feed.erb]
|
80
|
+
h["templates/blog"].should == [
|
81
|
+
"templates/blog/year.erb",
|
82
|
+
"templates/blog/post.erb",
|
83
|
+
"templates/blog/month.erb"
|
84
|
+
]
|
85
|
+
end
|
86
|
+
|
54
87
|
describe "when parsing command line arguments" do
|
55
88
|
|
56
89
|
before :each do
|
@@ -78,7 +78,8 @@ describe Webby::Apps::Main do
|
|
78
78
|
|
79
79
|
describe ".parse" do
|
80
80
|
it "should pass environment variables to the rake application" do
|
81
|
-
|
81
|
+
ary = ARGV
|
82
|
+
ARGV.replace []
|
82
83
|
args = %w[rebuild foo BASE=http://www.example.com bar]
|
83
84
|
@main.parse args
|
84
85
|
ary.should == %w[rebuild BASE=http://www.example.com]
|
@@ -108,13 +108,13 @@ describe Webby::Filters::BasePath do
|
|
108
108
|
|
109
109
|
it 'is restrictive to the configured xpaths' do
|
110
110
|
Webby.site.base = 'not a real site'
|
111
|
-
input = @input % ['<
|
111
|
+
input = @input % ['<foo src="/foo/picture.jpg" />', '<a href="/page.html">Page Title</a>']
|
112
112
|
|
113
113
|
bp = Webby::Filters::BasePath.new(input, 'html')
|
114
114
|
bp.filter.should == <<-HTML
|
115
115
|
<html>
|
116
116
|
<head>
|
117
|
-
<
|
117
|
+
<foo src="/foo/picture.jpg" />
|
118
118
|
</head>
|
119
119
|
<body>
|
120
120
|
<a href="not a real site/page.html">Page Title</a>
|