webby 0.9.3-x86-mswin32 → 0.9.4-x86-mswin32
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/{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
data/lib/webby/builder.rb
CHANGED
@@ -74,10 +74,8 @@ class Builder
|
|
74
74
|
def new_page_info
|
75
75
|
args = Webby.site.args
|
76
76
|
|
77
|
-
|
78
|
-
|
79
|
-
raise "Usage: webby #{task_name} path"
|
80
|
-
end
|
77
|
+
# TODO: maybe even get rid of this method altogether
|
78
|
+
raise "Usage: webby #{args.rake.first} 'path'" if args.raw.empty?
|
81
79
|
|
82
80
|
[args.page, args.title, args.dir]
|
83
81
|
end
|
@@ -131,7 +129,7 @@ class Builder
|
|
131
129
|
FileUtils.mkdir output_dir
|
132
130
|
end
|
133
131
|
|
134
|
-
load_files if opts[:load_files]
|
132
|
+
::Webby.load_files if opts[:load_files]
|
135
133
|
|
136
134
|
Resources.pages.each do |page|
|
137
135
|
unless page.dirty? or opts[:rebuild]
|
@@ -157,15 +155,9 @@ class Builder
|
|
157
155
|
nil
|
158
156
|
end
|
159
157
|
|
160
|
-
# Scan the <code>layouts/</code> folder and the <code>content/</code>
|
161
|
-
# folder and create a new Resource object for each file found there.
|
162
|
-
#
|
163
158
|
def load_files
|
164
|
-
::
|
165
|
-
|
166
|
-
next if path =~ ::Webby.exclude
|
167
|
-
Resources.new path
|
168
|
-
end
|
159
|
+
::Webby.deprecated "load_files", "it is being replaced by the Webby#load() method"
|
160
|
+
::Webby.load_files
|
169
161
|
end
|
170
162
|
|
171
163
|
%w(output_dir layout_dir content_dir).each do |key|
|
data/lib/webby/config.rb
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
# These are the main configuration options for Webby. Options for specific
|
2
|
+
# filters and helpers are defined in those files. Even a few of the rake
|
3
|
+
# tasks in the "examples" folder have their own configuration options
|
4
|
+
# defined.
|
5
|
+
#
|
6
|
+
# The nice thing about Loquacious configurations is that all these options
|
7
|
+
# can be defined where they are used, but the descriptions can be viewed by
|
8
|
+
# the user in one handy page.
|
9
|
+
|
10
|
+
Loquacious.configuration_for(:webby) {
|
11
|
+
|
12
|
+
desc 'The generated website will be output to this directory.'
|
13
|
+
output_dir 'output'
|
14
|
+
|
15
|
+
desc <<-__
|
16
|
+
The directory containg the main site content - pages, partials, css
|
17
|
+
stylesheets, etc.
|
18
|
+
__
|
19
|
+
content_dir 'content'
|
20
|
+
|
21
|
+
desc 'The directory containing the layout files.'
|
22
|
+
layout_dir 'layouts'
|
23
|
+
|
24
|
+
desc <<-__
|
25
|
+
The directory where page templtes can be found. These templates are used
|
26
|
+
by the 'webby create' command to define the boiler-plate for new pages
|
27
|
+
(things like the meta-data or standard text).
|
28
|
+
__
|
29
|
+
template_dir 'templates'
|
30
|
+
|
31
|
+
desc <<-__
|
32
|
+
This is an array of regular expression patterns that will exclude files
|
33
|
+
from webby processing. The patterns will be joined using the regular
|
34
|
+
expression OR operator '|'.
|
35
|
+
__
|
36
|
+
exclude %w{tmp$ bak$ ~$ CVS \.svn}
|
37
|
+
|
38
|
+
desc <<-__
|
39
|
+
A set of default meta-data values that are added to every page rendered
|
40
|
+
by webby. Specific values in the page override the default values
|
41
|
+
defined here. For example, you could define a default set of filters
|
42
|
+
|
|
43
|
+
| SITE.page_defaults = {
|
44
|
+
| 'layout' => 'default',
|
45
|
+
| 'filter' => ['erb', 'textile']
|
46
|
+
| }
|
47
|
+
|
|
48
|
+
Now, every page will be run through the ERB filter and then the
|
49
|
+
Textile filter. Specific pages can override the set of filters or omit
|
50
|
+
them altogether as needed.
|
51
|
+
__
|
52
|
+
page_defaults({
|
53
|
+
'layout' => 'default'
|
54
|
+
})
|
55
|
+
|
56
|
+
desc <<-__
|
57
|
+
Defines the default page attribute that will be used by the
|
58
|
+
'link_to_page' method to find other pages in the site. If this value
|
59
|
+
is set to :title, then the title found in the page meta-data is
|
60
|
+
searched for a match. If this value is set to :filename, then the
|
61
|
+
filenames of pages are search for a match.
|
62
|
+
|
63
|
+
This value can be overridden on a case by case basis when the
|
64
|
+
'link_to_page' method is called.
|
65
|
+
__
|
66
|
+
find_by :title
|
67
|
+
|
68
|
+
desc <<-__
|
69
|
+
Using the 'webby create' task, new pages can either be created as a
|
70
|
+
normal page or as an index page in it's own directory. The latter
|
71
|
+
option allows your pages to have "nice" URLs:
|
72
|
+
|
|
73
|
+
| foo/bar/my-new-post.html <-- 'page'
|
74
|
+
| foo/bar/my-new-post/ <-- 'directory'
|
75
|
+
|
|
76
|
+
The two options supported by the 'create_mode' are either 'page'
|
77
|
+
or 'directory'.
|
78
|
+
__
|
79
|
+
create_mode 'page'
|
80
|
+
|
81
|
+
desc <<-__
|
82
|
+
When the 'webby create' task is used to create a new page in your site,
|
83
|
+
webby will automatically open your favorite editor. Use this option to
|
84
|
+
define which editor webby will start. Set this option to nil if you do
|
85
|
+
not want webby to launch an editor when you create new pages.
|
86
|
+
|
87
|
+
The default is taken from the environment as either 'WEBBY_EDITOR' or
|
88
|
+
'EDITOR', whichever is defined.
|
89
|
+
__
|
90
|
+
editor ENV['WEBBY_EDITOR'] || ENV['EDITOR']
|
91
|
+
|
92
|
+
desc <<-__
|
93
|
+
This flag determines whether or not the internal web server is launched
|
94
|
+
when the autobuild loop is running. The default is to launch the web
|
95
|
+
server. Set to false to disable.
|
96
|
+
__
|
97
|
+
use_web_server true
|
98
|
+
|
99
|
+
desc <<-__
|
100
|
+
Defines the port number the internal web server will use when the
|
101
|
+
autobuild loop is running.
|
102
|
+
__
|
103
|
+
web_port 4331
|
104
|
+
|
105
|
+
desc <<-__
|
106
|
+
The username that will be used when publishing a site to the remote host.
|
107
|
+
Login to the remote host will take the form 'user@host' where both 'user'
|
108
|
+
and 'host' are configuration options.
|
109
|
+
|
110
|
+
The default is taken from the environment as either 'USER' or
|
111
|
+
'USERNAME', whichever is defined.
|
112
|
+
__
|
113
|
+
user ENV['USER'] || ENV['USERNAME']
|
114
|
+
|
115
|
+
desc <<-__
|
116
|
+
The hostname that will be used when publishing a site to the remote host.
|
117
|
+
Login to the remote host will take the form 'user@host' where both 'user'
|
118
|
+
and 'host' are configuration options.
|
119
|
+
__
|
120
|
+
host 'example.com'
|
121
|
+
|
122
|
+
desc <<-__
|
123
|
+
The destination directory on the remote host where the site will
|
124
|
+
be published.
|
125
|
+
__
|
126
|
+
remote_dir '/dev/null'
|
127
|
+
|
128
|
+
desc <<-__
|
129
|
+
Arguments that will be passed to the rysnc command when deploying the
|
130
|
+
site to the remote host. This array of arguments will be joined together
|
131
|
+
by spaces.
|
132
|
+
__
|
133
|
+
rsync_args %w(-av)
|
134
|
+
|
135
|
+
desc <<-__
|
136
|
+
The list of URIs that will automatically pass validation when the webby
|
137
|
+
validate task is run.
|
138
|
+
__
|
139
|
+
valid_uris []
|
140
|
+
|
141
|
+
desc <<-__
|
142
|
+
The base URL of the site. This value is used by the 'basepath' filter to
|
143
|
+
replace leading slashes in URIs with this base value. The URIs to replace
|
144
|
+
are identified by the 'xpaths' option.
|
145
|
+
__
|
146
|
+
base nil
|
147
|
+
|
148
|
+
desc <<-__
|
149
|
+
The basepath filter is used to replace leading slashes in URIs with the
|
150
|
+
text from the 'base' option. Only those URIs identified by the XPaths
|
151
|
+
defined here will be altered. You can add to or remove XPaths from this
|
152
|
+
list depending on your needs.
|
153
|
+
__
|
154
|
+
xpaths %w{
|
155
|
+
/html/head//base[@href]
|
156
|
+
/html/head//link[@href]
|
157
|
+
//script[@src]
|
158
|
+
/html/body[@background]
|
159
|
+
/html/body//a[@href]
|
160
|
+
/html/body//object[@data]
|
161
|
+
/html/body//img[@src]
|
162
|
+
/html/body//area[@href]
|
163
|
+
/html/body//form[@action]
|
164
|
+
/html/body//input[@src]
|
165
|
+
}
|
166
|
+
# other possible XPaths to include for base path substitution
|
167
|
+
# /html/body//object[@usemap]
|
168
|
+
# /html/body//img[@usemap]
|
169
|
+
# /html/body//input[@usemap]
|
170
|
+
}
|
171
|
+
|
172
|
+
# EOF
|
data/lib/webby/filters.rb
CHANGED
data/lib/webby/filters/haml.rb
CHANGED
@@ -2,8 +2,21 @@
|
|
2
2
|
# Render text via the Haml library
|
3
3
|
if try_require('haml', 'haml')
|
4
4
|
|
5
|
+
Loquacious.configuration_for(:webby) {
|
6
|
+
desc <<-__
|
7
|
+
A hash of options that will be passed to the Haml::Engine when procesing
|
8
|
+
content through the 'haml' filter. See the Haml rdoc documentation for
|
9
|
+
the list of available options.
|
10
|
+
|
11
|
+
Note: webby will set the :filename to the current page being rendered.
|
12
|
+
__
|
13
|
+
haml_options Hash.new
|
14
|
+
}
|
15
|
+
|
5
16
|
Webby::Filters.register :haml do |input, cursor|
|
6
17
|
opts = ::Webby.site.haml_options.merge(cursor.page.haml_options || {})
|
18
|
+
opts = opts.symbolize_keys
|
19
|
+
opts.merge!(:filename => cursor.page.destination)
|
7
20
|
b = cursor.renderer.get_binding
|
8
21
|
Haml::Engine.new(input, opts).to_html(b)
|
9
22
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
# Render text via markdown using the Maruku library.
|
3
|
+
if try_require('maruku', 'maruku')
|
4
|
+
|
5
|
+
Webby::Filters.register :maruku do |input|
|
6
|
+
Maruku.new(input).to_html
|
7
|
+
end
|
8
|
+
|
9
|
+
# Otherwise raise an error if the user tries to use maruku
|
10
|
+
else
|
11
|
+
Webby::Filters.register :maruku do |input|
|
12
|
+
raise Webby::Error, "'maruku' must be installed to use the maruku filter"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# EOF
|
@@ -175,7 +175,7 @@ class Outline
|
|
175
175
|
|
176
176
|
lbl = label
|
177
177
|
if numbering?
|
178
|
-
elem.children.first.before {
|
178
|
+
elem.children.first.before %Q{<span class="heading-num">#{lbl}</span>}
|
179
179
|
end
|
180
180
|
elem['id'] = "h#{lbl.tr('.','_')}" if elem['id'].nil?
|
181
181
|
|
data/lib/webby/filters/sass.rb
CHANGED
@@ -2,8 +2,22 @@
|
|
2
2
|
# Render text via the Sass library (part of Haml)
|
3
3
|
if try_require('sass', 'haml')
|
4
4
|
|
5
|
+
Loquacious.configuration_for(:webby) {
|
6
|
+
desc <<-__
|
7
|
+
A hash of options that will be passed to the Sass::Engine when procesing
|
8
|
+
content through the 'sass' filter. See the Sass rdoc documentation for
|
9
|
+
the list of available options (par of the haml gem).
|
10
|
+
|
11
|
+
Note: webby will set the :filename to the current page being rendered.
|
12
|
+
__
|
13
|
+
sass_options Hash.new
|
14
|
+
}
|
15
|
+
|
5
16
|
Webby::Filters.register :sass do |input, cursor|
|
6
17
|
opts = ::Webby.site.sass_options.merge(cursor.page.sass_options || {})
|
18
|
+
opts = opts.symbolize_keys
|
19
|
+
opts.merge!(:filename => cursor.page.destination)
|
20
|
+
opts[:style] = opts[:style].to_sym if opts.include? :style
|
7
21
|
Sass::Engine.new(input, opts).render
|
8
22
|
end
|
9
23
|
|
data/lib/webby/filters/slides.rb
CHANGED
@@ -35,9 +35,9 @@ class Slides
|
|
35
35
|
def filter
|
36
36
|
result = []
|
37
37
|
|
38
|
-
@str.split(%r/\<h1
|
38
|
+
@str.split(%r/\<h1/i).each do |slide|
|
39
39
|
next if slide.strip.empty?
|
40
|
-
result << START_SLIDE << '<h1
|
40
|
+
result << START_SLIDE << '<h1' << slide << END_SLIDE
|
41
41
|
end
|
42
42
|
|
43
43
|
result.join
|
data/lib/webby/filters/tidy.rb
CHANGED
@@ -1,6 +1,30 @@
|
|
1
1
|
if try_require 'coderay'
|
2
2
|
require 'enumerator'
|
3
3
|
|
4
|
+
Loquacious.configuration_for(:webby) {
|
5
|
+
desc <<-__
|
6
|
+
Options for CodeRay syntax highlighting. See the CodeRay home page
|
7
|
+
(http://coderay.rubychan.de/) for more information about the available
|
8
|
+
options.
|
9
|
+
__
|
10
|
+
coderay {
|
11
|
+
desc 'The language being highlighted (given as a symbol).'
|
12
|
+
lang :ruby
|
13
|
+
|
14
|
+
desc 'Include line numbers in :table, :inline, :list or nil (no line numbers).'
|
15
|
+
line_numbers nil
|
16
|
+
|
17
|
+
desc 'Where to start line number counting.'
|
18
|
+
line_number_start 1
|
19
|
+
|
20
|
+
desc 'Make every N-th number appear bold.'
|
21
|
+
bold_every 10
|
22
|
+
|
23
|
+
desc 'Tabs will be converted into this number of space characters.'
|
24
|
+
tab_width 8
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
4
28
|
module Webby::Helpers
|
5
29
|
module CodeRayHelper
|
6
30
|
|
@@ -35,7 +59,7 @@ module CodeRayHelper
|
|
35
59
|
return if text.empty?
|
36
60
|
|
37
61
|
defaults = ::Webby.site.coderay
|
38
|
-
lang = opts.getopt(:lang, defaults
|
62
|
+
lang = opts.getopt(:lang, defaults.lang).to_sym
|
39
63
|
|
40
64
|
cr_opts = {}
|
41
65
|
%w(line_numbers to_sym
|
@@ -49,9 +73,9 @@ module CodeRayHelper
|
|
49
73
|
end
|
50
74
|
|
51
75
|
#cr.swap(CodeRay.scan(text, lang).html(opts).div)
|
52
|
-
out =
|
76
|
+
out = %Q{<div class="CodeRay">\n<pre>}
|
53
77
|
out << ::CodeRay.scan(text, lang).html(cr_opts)
|
54
|
-
out <<
|
78
|
+
out << %Q{</pre>\n</div>}
|
55
79
|
|
56
80
|
# put some guards around the output (specifically for textile)
|
57
81
|
out = _guard(out)
|
@@ -1,6 +1,23 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
require 'tempfile'
|
3
3
|
|
4
|
+
Loquacious.configuration_for(:webby) {
|
5
|
+
desc 'Options for graphviz processing.'
|
6
|
+
graphviz {
|
7
|
+
desc 'The path in the output folder where images are stored.'
|
8
|
+
path nil
|
9
|
+
|
10
|
+
desc <<-__
|
11
|
+
The graphviz command used to render the images.
|
12
|
+
(dot, neato, twopi, circo, fdp)
|
13
|
+
__
|
14
|
+
cmd 'dot'
|
15
|
+
|
16
|
+
desc 'The type of output image to generate (png, jpg, gif).'
|
17
|
+
type 'png'
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
4
21
|
module Webby::Helpers
|
5
22
|
module GraphvizHelper
|
6
23
|
|
@@ -71,9 +88,9 @@ module GraphvizHelper
|
|
71
88
|
err.close
|
72
89
|
|
73
90
|
defaults = ::Webby.site.graphviz
|
74
|
-
path = opts.getopt(:path, defaults
|
75
|
-
cmd = opts.getopt(:cmd, defaults
|
76
|
-
type = opts.getopt(:type, defaults
|
91
|
+
path = opts.getopt(:path, defaults.path)
|
92
|
+
cmd = opts.getopt(:cmd, defaults.cmd)
|
93
|
+
type = opts.getopt(:type, defaults.type)
|
77
94
|
|
78
95
|
# pull the name of the graph|digraph out of the DOT script
|
79
96
|
name = text.match(%r/\A\s*(?:strict\s+)?(?:di)?graph\s+([A-Za-z_][A-Za-z0-9_]*)\s+\{/o)[1]
|
@@ -1,6 +1,26 @@
|
|
1
1
|
require Webby.libpath(*%w[webby stelan mktemp])
|
2
2
|
require 'fileutils'
|
3
3
|
|
4
|
+
Loquacious.configuration_for(:webby) {
|
5
|
+
desc "Options for processing TeX math formula into images."
|
6
|
+
tex2img {
|
7
|
+
desc 'Where generated images will be stored.'
|
8
|
+
path nil
|
9
|
+
|
10
|
+
desc 'The type of image to generate (png, jpeg, gif).'
|
11
|
+
type 'png'
|
12
|
+
|
13
|
+
desc 'The background color of the image (color name, TeX color spec, or #aabbcc)'
|
14
|
+
bg 'white'
|
15
|
+
|
16
|
+
desc 'The foreground color of the image (color name, TeX color spec, or #aabbcc)'
|
17
|
+
fg 'black'
|
18
|
+
|
19
|
+
desc 'The desired resolution in dpi (HxV)'
|
20
|
+
resolution '150x150'
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
4
24
|
module Webby::Helpers
|
5
25
|
module TexImgHelper
|
6
26
|
|
@@ -45,11 +65,11 @@ module TexImgHelper
|
|
45
65
|
return if text.empty?
|
46
66
|
|
47
67
|
defaults = ::Webby.site.tex2img
|
48
|
-
path = opts.getopt(:path, defaults
|
49
|
-
type = opts.getopt(:type, defaults
|
50
|
-
bg = opts.getopt(:bg, defaults
|
51
|
-
fg = opts.getopt(:fg, defaults
|
52
|
-
res = opts.getopt(:resolution, defaults
|
68
|
+
path = opts.getopt(:path, defaults.path)
|
69
|
+
type = opts.getopt(:type, defaults.type)
|
70
|
+
bg = opts.getopt(:bg, defaults.bg)
|
71
|
+
fg = opts.getopt(:fg, defaults.fg)
|
72
|
+
res = opts.getopt(:resolution, defaults.resolution)
|
53
73
|
|
54
74
|
# fix color escaping
|
55
75
|
fg = fg =~ %r/^[a-zA-Z]+$/ ? fg : "\"#{fg}\""
|