webby 0.8.2 → 0.8.3
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 +20 -0
- data/Manifest.txt +46 -2
- data/Rakefile +4 -3
- data/bin/webby +1 -1
- data/data/Rakefile +0 -1
- data/data/content/css/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/data/content/css/blueprint/plugins/buttons/icons/key.png +0 -0
- data/data/content/css/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/data/content/s5/blank.gif +0 -0
- data/data/content/s5/bodybg.gif +0 -0
- data/data/content/s5/framing.css +23 -0
- data/data/content/s5/iepngfix.htc +42 -0
- data/data/content/s5/opera.css +7 -0
- data/data/content/s5/outline.css +15 -0
- data/data/content/s5/pretty.css +86 -0
- data/data/content/s5/print.css +1 -0
- data/data/content/s5/s5-core.css +9 -0
- data/data/content/s5/slides.css +3 -0
- data/data/content/s5/slides.js +553 -0
- data/data/lib/breadcrumbs.rb +0 -0
- data/data/tasks/blog.rake +71 -0
- data/data/tasks/build.rake +27 -0
- data/data/tasks/create.rake +19 -1
- data/data/tasks/deploy.rake +2 -2
- data/data/tasks/setup.rb +4 -1
- data/data/templates/atom_feed.erb +20 -13
- data/data/templates/page.erb +1 -1
- data/data/templates/presentation.erb +40 -0
- data/examples/presentation/Rakefile +14 -0
- data/examples/presentation/content/_sample_code.txt +10 -0
- data/examples/presentation/content/css/uv/twilight.css +137 -0
- data/examples/presentation/content/index.txt +63 -0
- data/examples/presentation/content/s5/blank.gif +0 -0
- data/examples/presentation/content/s5/bodybg.gif +0 -0
- data/examples/presentation/content/s5/framing.css +23 -0
- data/examples/presentation/content/s5/iepngfix.htc +42 -0
- data/examples/presentation/content/s5/opera.css +7 -0
- data/examples/presentation/content/s5/outline.css +15 -0
- data/examples/presentation/content/s5/pretty.css +86 -0
- data/examples/presentation/content/s5/print.css +1 -0
- data/examples/presentation/content/s5/s5-core.css +9 -0
- data/examples/presentation/content/s5/slides.css +3 -0
- data/examples/presentation/content/s5/slides.js +553 -0
- data/examples/presentation/layouts/presentation.rhtml +43 -0
- data/examples/presentation/tasks/blog.rake +71 -0
- data/examples/presentation/tasks/build.rake +27 -0
- data/examples/presentation/tasks/create.rake +22 -0
- data/examples/presentation/tasks/deploy.rake +22 -0
- data/examples/presentation/tasks/growl.rake +12 -0
- data/examples/presentation/tasks/heel.rake +28 -0
- data/examples/presentation/tasks/setup.rb +17 -0
- data/examples/presentation/tasks/validate.rake +19 -0
- data/examples/presentation/templates/_partial.erb +13 -0
- data/examples/presentation/templates/presentation.erb +40 -0
- data/examples/webby/Rakefile +3 -2
- data/examples/webby/content/css/blueprint/screen.css +1 -1
- data/examples/webby/content/css/coderay.css +0 -15
- data/examples/webby/content/css/site.css +18 -13
- data/examples/webby/content/css/uv/twilight.css +137 -0
- data/examples/webby/content/index.txt +6 -10
- data/examples/webby/content/manual/index.txt +83 -122
- data/examples/webby/content/reference/index.txt +161 -16
- data/examples/webby/content/script/jquery.js +1 -1
- data/examples/webby/content/tips_and_tricks/index.txt +1 -1
- data/examples/webby/content/tutorial/index.txt +1 -1
- data/examples/webby/layouts/default.rhtml +2 -7
- data/examples/webby/tasks/blog.rake +71 -0
- data/examples/webby/tasks/build.rake +27 -0
- data/examples/webby/tasks/create.rake +19 -1
- data/examples/webby/tasks/deploy.rake +2 -2
- data/examples/webby/tasks/setup.rb +4 -20
- data/examples/webby/templates/page.erb +1 -1
- data/lib/webby.rb +30 -5
- data/lib/webby/auto_builder.rb +0 -2
- data/lib/webby/builder.rb +51 -5
- data/lib/webby/filters.rb +3 -3
- data/lib/webby/filters/basepath.rb +7 -7
- data/lib/webby/filters/erb.rb +0 -2
- data/lib/webby/filters/haml.rb +0 -2
- data/lib/webby/filters/markdown.rb +0 -2
- data/lib/webby/filters/outline.rb +43 -2
- data/lib/webby/filters/sass.rb +0 -2
- data/lib/webby/filters/slides.rb +56 -0
- data/lib/webby/filters/textile.rb +0 -2
- data/lib/webby/filters/tidy.rb +0 -2
- data/lib/webby/helpers.rb +0 -2
- data/lib/webby/helpers/capture_helper.rb +141 -0
- data/lib/webby/helpers/coderay_helper.rb +5 -16
- data/lib/webby/helpers/graphviz_helper.rb +6 -18
- data/lib/webby/helpers/tag_helper.rb +0 -2
- data/lib/webby/helpers/tex_img_helper.rb +5 -16
- data/lib/webby/helpers/ultraviolet_helper.rb +11 -22
- data/lib/webby/helpers/url_helper.rb +2 -4
- data/lib/webby/link_validator.rb +0 -2
- data/lib/webby/main.rb +0 -2
- data/lib/webby/renderer.rb +163 -37
- data/lib/webby/resources.rb +0 -2
- data/lib/webby/resources/db.rb +37 -27
- data/lib/webby/resources/file.rb +0 -2
- data/lib/webby/resources/layout.rb +0 -2
- data/lib/webby/resources/page.rb +4 -9
- data/lib/webby/resources/partial.rb +1 -3
- data/lib/webby/resources/resource.rb +10 -2
- data/lib/webby/resources/static.rb +0 -2
- data/lib/webby/stelan/mktemp.rb +0 -2
- data/lib/webby/stelan/spawner.rb +0 -2
- data/lib/webby/utils.rb +0 -2
- data/spec/spec_helper.rb +1 -4
- data/spec/webby/helpers/capture_helper_spec.rb +56 -0
- data/spec/webby/resources/file_spec.rb +0 -1
- data/tasks/ann.rake +7 -4
- data/tasks/bones.rake +2 -2
- data/tasks/gem.rake +26 -14
- data/tasks/notes.rake +11 -5
- data/tasks/post_load.rake +4 -2
- data/tasks/rdoc.rake +4 -2
- data/tasks/rubyforge.rake +3 -3
- data/tasks/setup.rb +24 -9
- data/tasks/spec.rake +1 -1
- data/tasks/website.rake +1 -1
- metadata +51 -7
- data/lib/webby/webby_task.rb +0 -134
- data/tasks/svn.rake +0 -45
data/lib/webby/filters/erb.rb
CHANGED
data/lib/webby/filters/haml.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# $Id: outline.rb 192 2008-03-08 16:27:29Z tim_pease $
|
|
2
|
-
|
|
3
1
|
require 'hpricot'
|
|
4
2
|
|
|
5
3
|
module Webby
|
|
@@ -24,6 +22,49 @@ module Filters
|
|
|
24
22
|
# it should be used after any markup langauge filters (textile, markdown,
|
|
25
23
|
# etc.).
|
|
26
24
|
#
|
|
25
|
+
# The following attributes can be specified in the <toc /> tag itself to
|
|
26
|
+
# control how outline numbering is performed by the filter. The attributes
|
|
27
|
+
# can be used in combination with one another.
|
|
28
|
+
#
|
|
29
|
+
# === numbering
|
|
30
|
+
#
|
|
31
|
+
# If set to "off", this will prevent numbers from being inserted into the
|
|
32
|
+
# page. The default is "on".
|
|
33
|
+
#
|
|
34
|
+
# <toc numbering="off" />
|
|
35
|
+
#
|
|
36
|
+
# === numbering_start
|
|
37
|
+
#
|
|
38
|
+
# This is the number to start with when inserting outline numbers into a
|
|
39
|
+
# page. The default is 1.
|
|
40
|
+
#
|
|
41
|
+
# <toc numbering_start="3" />
|
|
42
|
+
#
|
|
43
|
+
# === toc_style
|
|
44
|
+
#
|
|
45
|
+
# The style of the Table of Contents list to generated. This will be
|
|
46
|
+
# either "ol" for an ordered list or "ul" for an unordered list. The
|
|
47
|
+
# default is an ordered list.
|
|
48
|
+
#
|
|
49
|
+
# <toc toc_style="ul" />
|
|
50
|
+
#
|
|
51
|
+
# === toc_range
|
|
52
|
+
#
|
|
53
|
+
# This limits the numbering to only a subset of the HTML heading tags. The
|
|
54
|
+
# defaul is to number all the heading tags.
|
|
55
|
+
#
|
|
56
|
+
# <toc toc_range="h1-h3" />
|
|
57
|
+
#
|
|
58
|
+
# In this example, only the heading tags h1, h2, and h3 will be numbered
|
|
59
|
+
# and included in the table of contents listing.
|
|
60
|
+
#
|
|
61
|
+
# ==== Example
|
|
62
|
+
#
|
|
63
|
+
# Generate a table of contents using an unordered list, starting with the
|
|
64
|
+
# number 2, and only numbering heading levels 2, 3, and 4.
|
|
65
|
+
#
|
|
66
|
+
# <toc numbering_start="2" toc_style="ul" toc_range="h2-h4" />
|
|
67
|
+
#
|
|
27
68
|
class Outline
|
|
28
69
|
include ERB::Util
|
|
29
70
|
|
data/lib/webby/filters/sass.rb
CHANGED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Webby
|
|
2
|
+
module Filters
|
|
3
|
+
|
|
4
|
+
# The Slides filter is used to generate an S5 presentation from HTML input
|
|
5
|
+
# text. The input HTML is scanned for <h1> tags and slide divs are inserted
|
|
6
|
+
# before each <h1> tag found.
|
|
7
|
+
#
|
|
8
|
+
# When the HTML is rendered into the presentation layout, the result is an
|
|
9
|
+
# S5 presentation -- provided that the layout includes the appropriate S5
|
|
10
|
+
# javascript and CSS files.
|
|
11
|
+
#
|
|
12
|
+
class Slides
|
|
13
|
+
|
|
14
|
+
START_SLIDE = %{<div class="slide">#$/}
|
|
15
|
+
END_SLIDE = %{</div>#$/#$/}
|
|
16
|
+
|
|
17
|
+
# call-seq:
|
|
18
|
+
# Slides.new( html )
|
|
19
|
+
#
|
|
20
|
+
# Creates a new slides filter that will operate on the given
|
|
21
|
+
# _html_ string.
|
|
22
|
+
#
|
|
23
|
+
def initialize( str )
|
|
24
|
+
@str = str
|
|
25
|
+
@open = false
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# call-seq:
|
|
29
|
+
# filter => html
|
|
30
|
+
#
|
|
31
|
+
# Process the original html document passed to the filter when it was
|
|
32
|
+
# created. The document will be scanned for H1 heading tags and slide
|
|
33
|
+
# divs will be inserted into the page before each H1 tag that is found.
|
|
34
|
+
#
|
|
35
|
+
def filter
|
|
36
|
+
result = []
|
|
37
|
+
|
|
38
|
+
@str.split(%r/\<h1\>/i).each do |slide|
|
|
39
|
+
next if slide.strip.empty?
|
|
40
|
+
result << START_SLIDE << '<h1>' << slide << END_SLIDE
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
result.join
|
|
44
|
+
end
|
|
45
|
+
end # class Slides
|
|
46
|
+
|
|
47
|
+
# Insert slide divs into the input HTML text.
|
|
48
|
+
#
|
|
49
|
+
register :slides do |input|
|
|
50
|
+
Slides.new(input).filter
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end # module Filters
|
|
54
|
+
end # module Webby
|
|
55
|
+
|
|
56
|
+
# EOF
|
data/lib/webby/filters/tidy.rb
CHANGED
data/lib/webby/helpers.rb
CHANGED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
|
|
2
|
+
module Webby::Helpers
|
|
3
|
+
|
|
4
|
+
# Based on code from Rails and Merb.
|
|
5
|
+
#
|
|
6
|
+
module CaptureHelper
|
|
7
|
+
|
|
8
|
+
# Called in pages and partials to store up content for later use. Takes a
|
|
9
|
+
# string and/or a block. First, the string is evaluated, and then the
|
|
10
|
+
# block is captured using the capture() helper provided by the template
|
|
11
|
+
# languages. The two are concatenated together.
|
|
12
|
+
#
|
|
13
|
+
# Content is retrieved by calling the method without a string or a block.
|
|
14
|
+
#
|
|
15
|
+
# ==== Parameters
|
|
16
|
+
# obj<Object>:: The key in the conetnt_for hash.
|
|
17
|
+
# string<String>:: Textual content. Defaults to nil.
|
|
18
|
+
# &block:: A block to be evaluated and concatenated to string.
|
|
19
|
+
#
|
|
20
|
+
# ==== Returns
|
|
21
|
+
# Any content associated with the key (or nil).
|
|
22
|
+
#
|
|
23
|
+
# ==== Example
|
|
24
|
+
# content_for(:foo, "Foo")
|
|
25
|
+
# content_for(:foo) #=> "Foo"
|
|
26
|
+
# content_for(:foo, "Bar")
|
|
27
|
+
# content_for(:foo) #=> "FooBar"
|
|
28
|
+
#
|
|
29
|
+
def content_for( obj, string = nil, &block )
|
|
30
|
+
return @_content_for[obj] unless string || block_given?
|
|
31
|
+
|
|
32
|
+
cur = @_content_for[obj].to_s
|
|
33
|
+
new = string.to_s + (block_given? ? capture_erb(&block) : "")
|
|
34
|
+
@_content_for[obj] = cur + new
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Returns true if there is content for the given key. Otherwise returns
|
|
38
|
+
# false.
|
|
39
|
+
#
|
|
40
|
+
# ==== Parameters
|
|
41
|
+
# obj<Object>:: The key in the conetnt_for hash.
|
|
42
|
+
#
|
|
43
|
+
# ==== Example
|
|
44
|
+
# content_for(:foo, "Foo")
|
|
45
|
+
# content_for?(:foo) #=> true
|
|
46
|
+
# content_for?(:bar) #=> false
|
|
47
|
+
#
|
|
48
|
+
def content_for?( obj )
|
|
49
|
+
@_content_for.key?(obj)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Deletes any content associated with the given object in the content_for
|
|
53
|
+
# hash.
|
|
54
|
+
#
|
|
55
|
+
# ==== Parameters
|
|
56
|
+
# obj<Object>:: The key in the conetnt_for hash.
|
|
57
|
+
#
|
|
58
|
+
# ==== Returns
|
|
59
|
+
# Any content associated with the key (or nil).
|
|
60
|
+
#
|
|
61
|
+
# ==== Example
|
|
62
|
+
# content_for(:foo, "Foo")
|
|
63
|
+
# content_for?(:foo) #=> true
|
|
64
|
+
# delete_content_for(:foo)
|
|
65
|
+
# content_for?(:foo) #=> false
|
|
66
|
+
#
|
|
67
|
+
def delete_content_for( obj )
|
|
68
|
+
@_content_for.delete(obj)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# This method is used to capture content from an ERB filter evaluation. It
|
|
72
|
+
# is useful to helpers that need to process chunks of data during ERB filter
|
|
73
|
+
# processing.
|
|
74
|
+
#
|
|
75
|
+
# ==== Parameters
|
|
76
|
+
# *args:: Arguments to pass to the block.
|
|
77
|
+
# &block:: The ERB block to call.
|
|
78
|
+
#
|
|
79
|
+
# ==== Returns
|
|
80
|
+
# String:: The output of the block.
|
|
81
|
+
#
|
|
82
|
+
# ==== Examples
|
|
83
|
+
# Capture being used in an ERB page:
|
|
84
|
+
#
|
|
85
|
+
# <% @foo = capture_erb do %>
|
|
86
|
+
# <p>Some Foo content!</p>
|
|
87
|
+
# <% end %>
|
|
88
|
+
#
|
|
89
|
+
def capture_erb( *args, &block )
|
|
90
|
+
# get the buffer from the block's binding
|
|
91
|
+
buffer = _erb_buffer(block.binding) rescue nil
|
|
92
|
+
|
|
93
|
+
# If there is no buffer, just call the block and get the contents
|
|
94
|
+
if buffer.nil?
|
|
95
|
+
block.call(*args)
|
|
96
|
+
# If there is a buffer, execute the block, then extract its contents
|
|
97
|
+
else
|
|
98
|
+
pos = buffer.length
|
|
99
|
+
block.call(*args)
|
|
100
|
+
|
|
101
|
+
# extract the block
|
|
102
|
+
data = buffer[pos..-1]
|
|
103
|
+
|
|
104
|
+
# replace it in the original with empty string
|
|
105
|
+
buffer[pos..-1] = ""
|
|
106
|
+
|
|
107
|
+
data
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# This method is used to concatenate content into the ERB output buffer.
|
|
112
|
+
# It is usefule to helpers that need to insert transformed text back into
|
|
113
|
+
# the ERB output buffer.
|
|
114
|
+
#
|
|
115
|
+
# ==== Parameters
|
|
116
|
+
# string<String>:: The string to insert into the ERB output.
|
|
117
|
+
# the_binding<Binding>:: The binding to pass to the buffer.
|
|
118
|
+
#
|
|
119
|
+
def concat_erb( string, the_binding )
|
|
120
|
+
_erb_buffer(the_binding) << string
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Provides direct acccess to the ERB buffer in the conext of the binding.
|
|
124
|
+
#
|
|
125
|
+
# ==== Parameters
|
|
126
|
+
# the_binding<Binding>:: The binding to pass to the buffer.
|
|
127
|
+
#
|
|
128
|
+
# ==== Returns
|
|
129
|
+
# The current ERB output buffer.
|
|
130
|
+
#
|
|
131
|
+
def _erb_buffer( the_binding )
|
|
132
|
+
eval("_erbout", the_binding, __FILE__, __LINE__)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
end # module CaptureHelper
|
|
136
|
+
|
|
137
|
+
register(CaptureHelper)
|
|
138
|
+
|
|
139
|
+
end # module Webby::Helpers
|
|
140
|
+
|
|
141
|
+
# EOF
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# $Id: coderay_helper.rb 199 2008-03-11 18:54:45Z tim_pease $
|
|
2
|
-
|
|
3
1
|
if try_require 'coderay'
|
|
4
2
|
require 'enumerator'
|
|
5
3
|
|
|
@@ -33,15 +31,8 @@ module CodeRayHelper
|
|
|
33
31
|
def coderay( *args, &block )
|
|
34
32
|
opts = args.last.instance_of?(Hash) ? args.pop : {}
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
block.call(*args)
|
|
39
|
-
|
|
40
|
-
text = buffer[pos..-1]
|
|
41
|
-
if text.empty?
|
|
42
|
-
buffer[pos..-1] = ''
|
|
43
|
-
return
|
|
44
|
-
end
|
|
34
|
+
text = capture_erb(&block)
|
|
35
|
+
return if text.empty?
|
|
45
36
|
|
|
46
37
|
defaults = ::Webby.site.coderay
|
|
47
38
|
lang = opts.getopt(:lang, defaults[:lang]).to_sym
|
|
@@ -62,12 +53,10 @@ module CodeRayHelper
|
|
|
62
53
|
out << ::CodeRay.scan(text, lang).html(cr_opts)
|
|
63
54
|
out << '</pre></div>'
|
|
64
55
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
out << "\n</notextile>"
|
|
68
|
-
end
|
|
56
|
+
# put some guards around the output (specifically for textile)
|
|
57
|
+
out = _guard(out)
|
|
69
58
|
|
|
70
|
-
|
|
59
|
+
concat_erb(out, block.binding)
|
|
71
60
|
return
|
|
72
61
|
end
|
|
73
62
|
end # module CodeRayHelper
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# $Id: graphviz_helper.rb 193 2008-03-09 02:32:37Z tim_pease $
|
|
2
|
-
|
|
3
1
|
require 'fileutils'
|
|
4
2
|
require 'tempfile'
|
|
5
3
|
|
|
@@ -64,24 +62,18 @@ module GraphvizHelper
|
|
|
64
62
|
def graphviz( *args, &block )
|
|
65
63
|
opts = args.last.instance_of?(Hash) ? args.pop : {}
|
|
66
64
|
|
|
65
|
+
text = capture_erb(&block)
|
|
66
|
+
return if text.empty?
|
|
67
|
+
|
|
67
68
|
# create a temporary file for holding any error messages
|
|
68
69
|
# from the graphviz program
|
|
69
70
|
err = Tempfile.new('graphviz_err')
|
|
70
71
|
err.close
|
|
71
72
|
|
|
72
|
-
buffer = eval('_erbout', block.binding)
|
|
73
|
-
pos = buffer.length
|
|
74
|
-
block.call(*args)
|
|
75
|
-
|
|
76
73
|
defaults = ::Webby.site.graphviz
|
|
77
74
|
path = opts.getopt(:path, defaults[:path])
|
|
78
75
|
cmd = opts.getopt(:cmd, defaults[:cmd])
|
|
79
76
|
type = opts.getopt(:type, defaults[:type])
|
|
80
|
-
text = buffer[pos..-1].strip
|
|
81
|
-
if text.empty?
|
|
82
|
-
buffer[pos..-1] = ''
|
|
83
|
-
return
|
|
84
|
-
end
|
|
85
77
|
|
|
86
78
|
# pull the name of the graph|digraph out of the DOT script
|
|
87
79
|
name = text.match(%r/\A\s*(?:strict\s+)?(?:di)?graph\s+([A-Za-z_][A-Za-z0-9_]*)\s+\{/o)[1]
|
|
@@ -127,14 +119,10 @@ module GraphvizHelper
|
|
|
127
119
|
IO.popen(cmd, 'w') {|io| io.write text}
|
|
128
120
|
GraphvizHelper.error_check(err)
|
|
129
121
|
|
|
130
|
-
#
|
|
131
|
-
|
|
132
|
-
if @_cursor.remaining_filters.include? 'textile'
|
|
133
|
-
out.insert 0, "<notextile>\n"
|
|
134
|
-
out << "\n</notextile>"
|
|
135
|
-
end
|
|
122
|
+
# put some guards around the output (specifically for textile)
|
|
123
|
+
out = _guard(out)
|
|
136
124
|
|
|
137
|
-
|
|
125
|
+
concat_erb(out, block.binding)
|
|
138
126
|
return
|
|
139
127
|
end
|
|
140
128
|
end # module GraphvizHelper
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# $Id: tex_img_helper.rb 193 2008-03-09 02:32:37Z tim_pease $
|
|
2
|
-
|
|
3
1
|
require Webby.libpath(*%w[webby stelan mktemp])
|
|
4
2
|
require 'fileutils'
|
|
5
3
|
|
|
@@ -43,15 +41,8 @@ module TexImgHelper
|
|
|
43
41
|
name = args.first
|
|
44
42
|
raise 'TeX graphics must have a name' if name.nil?
|
|
45
43
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
block.call(*args)
|
|
49
|
-
|
|
50
|
-
text = buffer[pos..-1].strip
|
|
51
|
-
if text.empty?
|
|
52
|
-
buffer[pos..-1] = ''
|
|
53
|
-
return
|
|
54
|
-
end
|
|
44
|
+
text = capture_erb(&block)
|
|
45
|
+
return if text.empty?
|
|
55
46
|
|
|
56
47
|
defaults = ::Webby.site.tex2img
|
|
57
48
|
path = opts.getopt(:path, defaults[:path])
|
|
@@ -125,12 +116,10 @@ module TexImgHelper
|
|
|
125
116
|
end
|
|
126
117
|
out << " />\n"
|
|
127
118
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
out << "\n</notextile>"
|
|
131
|
-
end
|
|
119
|
+
# put some guards around the output (specifically for textile)
|
|
120
|
+
out = _guard(out)
|
|
132
121
|
|
|
133
|
-
|
|
122
|
+
concat_erb(out, block.binding)
|
|
134
123
|
return
|
|
135
124
|
end
|
|
136
125
|
end # module TexImgHelper
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# $Id: ultraviolet_helper.rb 199 2008-03-11 18:54:45Z tim_pease $
|
|
2
|
-
|
|
3
1
|
# This code was provided by Guillaume Carbonneau -- http://radr.ca/
|
|
4
2
|
# Many thanks for his support of Webby!
|
|
5
3
|
|
|
@@ -19,17 +17,17 @@ module UltraVioletHelper
|
|
|
19
17
|
# <% uv( :lang => "ruby", :line_numbers => true ) do -%>
|
|
20
18
|
# # Initializer for the class.
|
|
21
19
|
# def initialize( string )
|
|
22
|
-
# @str =
|
|
20
|
+
# @str = string
|
|
23
21
|
# end
|
|
24
22
|
# <% end -%>
|
|
25
23
|
#
|
|
26
24
|
# The supported UltraViolet options are the following:
|
|
27
25
|
#
|
|
28
|
-
# :lang
|
|
29
|
-
#
|
|
30
|
-
# :line_numbers
|
|
31
|
-
# :theme
|
|
32
|
-
#
|
|
26
|
+
# :lang : the language to highlight (ruby, c, html, ...)
|
|
27
|
+
# [defaults to 'ruby']
|
|
28
|
+
# :line_numbers : true or false [defaults to false]
|
|
29
|
+
# :theme : see list of available themes in ultraviolet
|
|
30
|
+
# [defaults to 'mac_classic']
|
|
33
31
|
#
|
|
34
32
|
# The defaults can be overridden for an entire site by changing the SITE.uv
|
|
35
33
|
# options hash in the Rakefile.
|
|
@@ -37,15 +35,8 @@ module UltraVioletHelper
|
|
|
37
35
|
def uv( *args, &block )
|
|
38
36
|
opts = args.last.instance_of?(Hash) ? args.pop : {}
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
block.call(*args)
|
|
43
|
-
|
|
44
|
-
text = buffer[pos..-1]
|
|
45
|
-
if text.empty?
|
|
46
|
-
buffer[pos..-1] = ''
|
|
47
|
-
return
|
|
48
|
-
end
|
|
38
|
+
text = capture_erb(&block)
|
|
39
|
+
return if text.empty?
|
|
49
40
|
|
|
50
41
|
defaults = ::Webby.site.uv
|
|
51
42
|
lang = opts.getopt(:lang, defaults[:lang])
|
|
@@ -56,12 +47,10 @@ module UltraVioletHelper
|
|
|
56
47
|
out << Uv.parse(text, "xhtml", lang, line_numbers, theme)
|
|
57
48
|
out << '</div>'
|
|
58
49
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
out << "\n</notextile>"
|
|
62
|
-
end
|
|
50
|
+
# put some guards around the output (specifically for textile)
|
|
51
|
+
out = _guard(out)
|
|
63
52
|
|
|
64
|
-
|
|
53
|
+
concat_erb(out, block.binding)
|
|
65
54
|
return
|
|
66
55
|
end
|
|
67
56
|
end # module UltraVioletHelper
|