markaby 0.7.2 → 0.8.0
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/.gitignore +21 -0
- data/{spec/spec.opts → .rspec} +0 -0
- data/Gemfile +8 -0
- data/Markaby.gemspec +20 -105
- data/README.rdoc +12 -94
- data/Rakefile +19 -50
- data/lib/markaby.rb +1 -5
- data/lib/markaby/builder.rb +15 -1
- data/lib/markaby/builder_tags.rb +22 -2
- data/lib/markaby/kernel_method.rb +1 -0
- data/lib/markaby/tags.rb +91 -2
- data/lib/markaby/version.rb +3 -0
- data/spec/markaby/{css_proxy_test.rb → css_proxy_spec.rb} +12 -17
- data/spec/markaby/{fragment_test.rb → fragment_spec.rb} +0 -0
- data/spec/markaby/html5_spec.rb +100 -0
- data/spec/markaby/markaby_spec.rb +1 -1
- data/spec/markaby/{markaby_test.rb → markaby_test_unit_spec.rb} +1 -1
- data/spec/spec_helper.rb +0 -5
- metadata +70 -76
- data/garlic.rb +0 -29
- data/init.rb +0 -6
- data/lib/markaby/rails.rb +0 -75
- data/lib/markaby/rails/current.rb +0 -85
- data/lib/markaby/rails/deprecated.rb +0 -124
- data/lib/markaby/rails/rails_builder.rb +0 -91
- data/lib/markaby/sinatra.rb +0 -18
- data/lib/markaby/tilt.rb +0 -8
- data/spec/markaby/markaby_other_static.mab +0 -1
- data/spec/markaby/rails/spec_helper.rb +0 -29
- data/spec/markaby/rails/views/layouts/layout.mab +0 -11
- data/spec/markaby/rails/views/markaby/_a_partial.mab +0 -3
- data/spec/markaby/rails/views/markaby/_form_for_with_body_in_erb.erb +0 -1
- data/spec/markaby/rails/views/markaby/_partial_child_with_locals.mab +0 -1
- data/spec/markaby/rails/views/markaby/access_to_helpers.mab +0 -1
- data/spec/markaby/rails/views/markaby/broken.mab +0 -7
- data/spec/markaby/rails/views/markaby/commented_out_template.mab +0 -1
- data/spec/markaby/rails/views/markaby/correct_template_values.mab +0 -5
- data/spec/markaby/rails/views/markaby/double_output.mab +0 -8
- data/spec/markaby/rails/views/markaby/form_for.mab +0 -2
- data/spec/markaby/rails/views/markaby/form_for_with_fields.mab +0 -3
- data/spec/markaby/rails/views/markaby/form_for_with_multiple_fields.mab +0 -4
- data/spec/markaby/rails/views/markaby/no_values_passed.mab +0 -3
- data/spec/markaby/rails/views/markaby/partial_parent.mab +0 -1
- data/spec/markaby/rails/views/markaby/partial_parent_with_locals.mab +0 -7
- data/spec/markaby/rails/views/markaby/render_erb_without_explicit_render_call.erb +0 -1
- data/spec/markaby/rails/views/markaby/render_explicit_but_empty_markaby_layout.mab +0 -0
- data/spec/markaby/rails/views/markaby/render_mab_without_explicit_render_call.mab +0 -3
- data/spec/markaby/rails/views/markaby/render_with_ivar.mab +0 -3
- data/spec/markaby/rails/views/markaby/renders_erb.rhtml +0 -1
- data/spec/markaby/rails/views/markaby/renders_form_for_with_erb_body.mab +0 -3
- data/spec/markaby/rails/views/markaby/routes.mab +0 -1
- data/spec/markaby/rails/views/markaby/yielding.mab +0 -3
- data/spec/markaby/rails/views/markaby/yielding_content_for_with_block_helper.mab +0 -5
- data/spec/markaby/rails/views/markaby/yielding_two.mab +0 -7
- data/spec/markaby/rails/views/markaby/yielding_with_content_for.mab +0 -3
- data/spec/markaby/rails_test.rb +0 -380
- data/spec/markaby/rails_version_spec.rb +0 -37
- data/spec/markaby/sinatra/app.rb +0 -49
- data/spec/markaby/sinatra/sinatra_spec.rb +0 -67
- data/spec/markaby/sinatra/views/helpers.mab +0 -1
- data/spec/markaby/sinatra/views/layout.mab +0 -7
- data/spec/markaby/sinatra/views/markaby_template.mab +0 -0
- data/spec/markaby/sinatra/views/scope_instance_variables.mab +0 -3
- data/spec/markaby/sinatra/views/simple_html.mab +0 -4
- data/spec/markaby/sinatra/views/variables.mab +0 -3
- data/spec/markaby/tilt/erb.erb +0 -1
- data/spec/markaby/tilt/locals.mab +0 -1
- data/spec/markaby/tilt/markaby.mab +0 -1
- data/spec/markaby/tilt/markaby_other_static.mab +0 -1
- data/spec/markaby/tilt/render_twice.mab +0 -1
- data/spec/markaby/tilt/scope.mab +0 -1
- data/spec/markaby/tilt/yielding.mab +0 -2
- data/spec/markaby/tilt_spec.rb +0 -75
data/.gitignore
ADDED
data/{spec/spec.opts → .rspec}
RENAMED
File without changes
|
data/Gemfile
ADDED
data/Markaby.gemspec
CHANGED
@@ -1,109 +1,24 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'markaby/version'
|
5
5
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "markaby"
|
8
|
+
spec.version = Markaby::VERSION
|
9
|
+
spec.authors = ["Scott Taylor", "judofyr", "_why"]
|
10
|
+
spec.email = ["scott@railsnewbie.com"]
|
11
|
+
spec.description = "_why's markaby templating language"
|
12
|
+
spec.summary = "A pure ruby based, html markup language"
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
s.email = %q{scott@railsnewbie.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"README.rdoc"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
"CHANGELOG.rdoc",
|
20
|
-
"Markaby.gemspec",
|
21
|
-
"README.rdoc",
|
22
|
-
"Rakefile",
|
23
|
-
"VERSION",
|
24
|
-
"garlic.rb",
|
25
|
-
"init.rb",
|
26
|
-
"lib/markaby.rb",
|
27
|
-
"lib/markaby/builder.rb",
|
28
|
-
"lib/markaby/builder_tags.rb",
|
29
|
-
"lib/markaby/cssproxy.rb",
|
30
|
-
"lib/markaby/kernel_method.rb",
|
31
|
-
"lib/markaby/rails.rb",
|
32
|
-
"lib/markaby/rails/current.rb",
|
33
|
-
"lib/markaby/rails/deprecated.rb",
|
34
|
-
"lib/markaby/rails/rails_builder.rb",
|
35
|
-
"lib/markaby/sinatra.rb",
|
36
|
-
"lib/markaby/tags.rb",
|
37
|
-
"lib/markaby/tilt.rb",
|
38
|
-
"spec/markaby/builder_spec.rb",
|
39
|
-
"spec/markaby/css_proxy_test.rb",
|
40
|
-
"spec/markaby/fragment_test.rb",
|
41
|
-
"spec/markaby/markaby_other_static.mab",
|
42
|
-
"spec/markaby/markaby_spec.rb",
|
43
|
-
"spec/markaby/markaby_test.rb",
|
44
|
-
"spec/markaby/rails/spec_helper.rb",
|
45
|
-
"spec/markaby/rails/views/layouts/layout.mab",
|
46
|
-
"spec/markaby/rails/views/markaby/_a_partial.mab",
|
47
|
-
"spec/markaby/rails/views/markaby/_form_for_with_body_in_erb.erb",
|
48
|
-
"spec/markaby/rails/views/markaby/_partial_child_with_locals.mab",
|
49
|
-
"spec/markaby/rails/views/markaby/access_to_helpers.mab",
|
50
|
-
"spec/markaby/rails/views/markaby/broken.mab",
|
51
|
-
"spec/markaby/rails/views/markaby/commented_out_template.mab",
|
52
|
-
"spec/markaby/rails/views/markaby/correct_template_values.mab",
|
53
|
-
"spec/markaby/rails/views/markaby/double_output.mab",
|
54
|
-
"spec/markaby/rails/views/markaby/form_for.mab",
|
55
|
-
"spec/markaby/rails/views/markaby/form_for_with_fields.mab",
|
56
|
-
"spec/markaby/rails/views/markaby/form_for_with_multiple_fields.mab",
|
57
|
-
"spec/markaby/rails/views/markaby/no_values_passed.mab",
|
58
|
-
"spec/markaby/rails/views/markaby/partial_parent.mab",
|
59
|
-
"spec/markaby/rails/views/markaby/partial_parent_with_locals.mab",
|
60
|
-
"spec/markaby/rails/views/markaby/render_erb_without_explicit_render_call.erb",
|
61
|
-
"spec/markaby/rails/views/markaby/render_explicit_but_empty_markaby_layout.mab",
|
62
|
-
"spec/markaby/rails/views/markaby/render_mab_without_explicit_render_call.mab",
|
63
|
-
"spec/markaby/rails/views/markaby/render_with_ivar.mab",
|
64
|
-
"spec/markaby/rails/views/markaby/renders_erb.rhtml",
|
65
|
-
"spec/markaby/rails/views/markaby/renders_form_for_with_erb_body.mab",
|
66
|
-
"spec/markaby/rails/views/markaby/routes.mab",
|
67
|
-
"spec/markaby/rails/views/markaby/yielding.mab",
|
68
|
-
"spec/markaby/rails/views/markaby/yielding_content_for_with_block_helper.mab",
|
69
|
-
"spec/markaby/rails/views/markaby/yielding_two.mab",
|
70
|
-
"spec/markaby/rails/views/markaby/yielding_with_content_for.mab",
|
71
|
-
"spec/markaby/rails_test.rb",
|
72
|
-
"spec/markaby/rails_version_spec.rb",
|
73
|
-
"spec/markaby/sinatra/app.rb",
|
74
|
-
"spec/markaby/sinatra/sinatra_spec.rb",
|
75
|
-
"spec/markaby/sinatra/views/helpers.mab",
|
76
|
-
"spec/markaby/sinatra/views/layout.mab",
|
77
|
-
"spec/markaby/sinatra/views/markaby_template.mab",
|
78
|
-
"spec/markaby/sinatra/views/scope_instance_variables.mab",
|
79
|
-
"spec/markaby/sinatra/views/simple_html.mab",
|
80
|
-
"spec/markaby/sinatra/views/variables.mab",
|
81
|
-
"spec/markaby/tilt/erb.erb",
|
82
|
-
"spec/markaby/tilt/locals.mab",
|
83
|
-
"spec/markaby/tilt/markaby.mab",
|
84
|
-
"spec/markaby/tilt/markaby_other_static.mab",
|
85
|
-
"spec/markaby/tilt/render_twice.mab",
|
86
|
-
"spec/markaby/tilt/scope.mab",
|
87
|
-
"spec/markaby/tilt/yielding.mab",
|
88
|
-
"spec/markaby/tilt_spec.rb",
|
89
|
-
"spec/spec.opts",
|
90
|
-
"spec/spec_helper.rb"
|
91
|
-
]
|
92
|
-
s.homepage = %q{http://markaby.github.com/markaby/}
|
93
|
-
s.require_paths = [%q{lib}]
|
94
|
-
s.rubygems_version = %q{1.8.6}
|
95
|
-
s.summary = %q{Markup as Ruby, write HTML in your native Ruby tongue}
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
96
20
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
101
|
-
s.add_runtime_dependency(%q<builder>, [">= 2.0.0"])
|
102
|
-
else
|
103
|
-
s.add_dependency(%q<builder>, [">= 2.0.0"])
|
104
|
-
end
|
105
|
-
else
|
106
|
-
s.add_dependency(%q<builder>, [">= 2.0.0"])
|
107
|
-
end
|
21
|
+
spec.add_dependency "builder"
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
23
|
+
spec.add_development_dependency "rake"
|
108
24
|
end
|
109
|
-
|
data/README.rdoc
CHANGED
@@ -5,70 +5,27 @@ It is an alternative to ERb which weaves the two languages together.
|
|
5
5
|
Also a replacement for templating languages which use primitive languages
|
6
6
|
that blend with HTML.
|
7
7
|
|
8
|
-
== Using Markaby as a Rails plugin / gem
|
9
|
-
|
10
|
-
Write Rails templates in pure Ruby. Example layout:
|
11
|
-
|
12
|
-
html do
|
13
|
-
head do
|
14
|
-
title 'Products: ' + action_name
|
15
|
-
stylesheet_link_tag 'scaffold'
|
16
|
-
end
|
17
|
-
|
18
|
-
body do
|
19
|
-
p flash[:notice], :style => "color: green"
|
20
|
-
|
21
|
-
div.signup! do
|
22
|
-
form_for @user do |f|
|
23
|
-
f.text_field :email
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
yield
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
Markaby templates end in .mab
|
32
|
-
|
33
|
-
Markaby supports many versions of rails, including the latest rails:
|
34
|
-
|
35
|
-
1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 2.2.0,
|
36
|
-
2.2.1, 2.2.2, 2.2.3, 2.3.1, 2.3.2, 2.3.2.1,
|
37
|
-
2.3.3, 2.3.3.1, 2.3.4, 2.3.5, 2.3.6, 2.3.7,
|
38
|
-
2.3.8
|
39
|
-
|
40
|
-
Rails 3.0 support is planned.
|
41
|
-
|
42
|
-
=== Install it as a plugin
|
43
|
-
|
44
|
-
script/plugin install git://github.com/markaby/markaby.git
|
45
|
-
|
46
8
|
=== Install it as a gem
|
47
9
|
|
48
10
|
gem install markaby
|
49
11
|
|
50
|
-
If you are loading it in a different way (from a gem), make sure
|
51
|
-
it's on the $LOAD_PATH, and add the following in
|
52
|
-
an initializer (config/initializers/markaby.rb will work):
|
53
|
-
|
54
|
-
require 'markaby'
|
55
|
-
require 'markaby/rails'
|
56
|
-
|
57
|
-
Markaby::Rails.load
|
58
|
-
|
59
|
-
Or, you could try config.gem, but that's now known as a bad idea.
|
60
|
-
|
61
|
-
|
62
12
|
== Using Markaby with Sinatra (1.0+)
|
63
13
|
|
64
|
-
require 'markaby/sinatra'
|
65
|
-
|
66
14
|
get '/foo' do
|
67
15
|
mab :my_template # my_template.mab in the sinatra view path
|
68
16
|
end
|
69
17
|
|
70
18
|
If you are looking for sinatra support pre 0.7, see http://github.com/sbfaulkner/sinatra-markaby
|
71
19
|
|
20
|
+
A note on Tilt - using markaby with html5 doesn't quite yet work properly. If you'd like to render a template with html 5, call this at the start of a .mab template:
|
21
|
+
|
22
|
+
enable_html5!
|
23
|
+
|
24
|
+
Or enable html 5 globally:
|
25
|
+
|
26
|
+
Markaby::Builder.class_eval do
|
27
|
+
@@options = Markaby::Builder::HTML5_OPTIONS
|
28
|
+
end
|
72
29
|
|
73
30
|
== Using Markaby with other frameworks
|
74
31
|
|
@@ -174,15 +131,15 @@ Which results in:
|
|
174
131
|
== 3. Validate Your XHTML 1.0 Output
|
175
132
|
|
176
133
|
If you'd like Markaby to help you assemble valid XHTML documents,
|
177
|
-
you can use the <tt>xhtml_transitional</tt> or <tt>xhtml_strict</tt>
|
134
|
+
you can use the <tt>html5</tt>, <tt>xhtml_transitional</tt> or <tt>xhtml_strict</tt>
|
178
135
|
methods in place of the normal <tt>html</tt> tag.
|
179
136
|
|
180
|
-
|
137
|
+
html5 do
|
181
138
|
head { ... }
|
182
139
|
body { ... }
|
183
140
|
end
|
184
141
|
|
185
|
-
This will add the XML instruction and the doctype tag to your document.
|
142
|
+
This will add the XML instruction and the doctype tag to your document (for xhtml_strict and xhtml_transitional).
|
186
143
|
Also, a character set meta tag will be placed inside your <tt>head</tt>
|
187
144
|
tag.
|
188
145
|
|
@@ -263,45 +220,6 @@ won't work with this technique.
|
|
263
220
|
end
|
264
221
|
end
|
265
222
|
|
266
|
-
= A Note About Rails Helpers
|
267
|
-
|
268
|
-
When used in Rails templates, the Rails helper object is passed into
|
269
|
-
Markaby::Builder. When you call helper methods inside Markaby, the output
|
270
|
-
from those methods will be output to the stream. This is incredibly
|
271
|
-
handy, since most Rails helpers output HTML tags.
|
272
|
-
|
273
|
-
head do
|
274
|
-
javascript_include_tag 'prototype'
|
275
|
-
autodiscovery_link_tag
|
276
|
-
end
|
277
|
-
|
278
|
-
However, some methods are designed to give back a String which you can use
|
279
|
-
elsewhere. That's okay! Every method returns a Fragment object, which can
|
280
|
-
be used as a string.
|
281
|
-
|
282
|
-
p { "Total is: #{number_to_human_size @file_bytes}" }
|
283
|
-
|
284
|
-
Also see the Quick Tour above, specifically the stuff about auto-stringification.
|
285
|
-
|
286
|
-
If for any reason you have trouble with fragments, you can just
|
287
|
-
call the <tt>@helpers</tt> object with the method and you'll get
|
288
|
-
the String back and nothing will be output.
|
289
|
-
|
290
|
-
p { "Total is: #{@helpers.number_to_human_size @file_bytes}" }
|
291
|
-
|
292
|
-
Conversely, you may call instance variables from your controller by using
|
293
|
-
a method and its value will be returned, nothing will be output.
|
294
|
-
|
295
|
-
# Inside imaginary ProductController
|
296
|
-
def list
|
297
|
-
@products = Product.find :all
|
298
|
-
end
|
299
|
-
|
300
|
-
# Inside app/views/product/list.mab
|
301
|
-
products.each do |product|
|
302
|
-
p product.title
|
303
|
-
end
|
304
|
-
|
305
223
|
= Credits
|
306
224
|
|
307
225
|
Markaby is a work of immense hope by Tim Fletcher and why the lucky stiff.
|
data/Rakefile
CHANGED
@@ -1,43 +1,12 @@
|
|
1
1
|
require 'rake'
|
2
|
+
require "bundler/gem_tasks"
|
2
3
|
require 'rspec/core/rake_task'
|
3
|
-
require 'rake/testtask'
|
4
4
|
require 'rake/clean'
|
5
5
|
|
6
|
-
begin
|
7
|
-
require 'hanna/rdoctask'
|
8
|
-
|
9
|
-
Rake::RDocTask.new do |rdoc|
|
10
|
-
rdoc.rdoc_dir = 'doc/rdoc'
|
11
|
-
rdoc.options << '--line-numbers'
|
12
|
-
rdoc.rdoc_files.add(['README.rdoc', 'CHANGELOG.rdoc', 'lib/**/*.rb'])
|
13
|
-
end
|
14
|
-
rescue LoadError
|
15
|
-
puts "Could not load hanna-rdoc. Please install with mislav-hanna package"
|
16
|
-
end
|
17
|
-
|
18
|
-
task :default => [:spec, :test]
|
19
|
-
|
20
|
-
Rake::TestTask.new(:test) do |t|
|
21
|
-
t.pattern = 'spec/markaby/*_test.rb'
|
22
|
-
end
|
23
|
-
|
24
6
|
RSpec::Core::RakeTask.new(:spec)
|
7
|
+
task :default => :spec
|
25
8
|
|
26
|
-
|
27
|
-
require 'jeweler'
|
28
|
-
|
29
|
-
Jeweler::Tasks.new do |gemspec|
|
30
|
-
gemspec.name = "markaby"
|
31
|
-
gemspec.summary = "Markup as Ruby, write HTML in your native Ruby tongue"
|
32
|
-
gemspec.description = "Tim Fletcher and _why's ruby driven HTML templating system"
|
33
|
-
gemspec.email = "scott@railsnewbie.com"
|
34
|
-
gemspec.homepage = "http://markaby.github.com/markaby/"
|
35
|
-
gemspec.authors = ["_why", "Tim Fletcher", "John Barton", "spox", "smtlaissezfaire"]
|
36
|
-
gemspec.add_dependency 'builder', '>=2.0.0'
|
37
|
-
end
|
38
|
-
rescue LoadError
|
39
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
40
|
-
end
|
9
|
+
Bundler::GemHelper.install_tasks
|
41
10
|
|
42
11
|
desc "List any Markaby specific warnings"
|
43
12
|
task :warnings do
|
@@ -60,19 +29,19 @@ namespace :gemspec do
|
|
60
29
|
end
|
61
30
|
end
|
62
31
|
|
63
|
-
namespace :release do
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
end
|
77
|
-
|
78
|
-
task :release => "release:patch"
|
32
|
+
# namespace :release do
|
33
|
+
# task :patch => [:spec, "version:bump:patch", :update_gemspec, :rerdoc, :tag_release, :build, :push_tags]
|
34
|
+
#
|
35
|
+
# task :update_gemspec => ["gemspec:generate", "gemspec:validate", "gemspec:commit"]
|
36
|
+
# task :tag_release do
|
37
|
+
# require File.dirname(__FILE__) + "/lib/markaby"
|
38
|
+
# version = "v#{Markaby::VERSION}"
|
39
|
+
# sh "git tag #{version}"
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
# task :push_tags do
|
43
|
+
# sh "git push --tags"
|
44
|
+
# end
|
45
|
+
# end
|
46
|
+
#
|
47
|
+
# task :release => "release:patch"
|
data/lib/markaby.rb
CHANGED
@@ -16,15 +16,11 @@ $:.unshift File.expand_path(File.dirname(__FILE__))
|
|
16
16
|
# * Markaby::MetAid: metaprogramming helper methods.
|
17
17
|
# * Markaby::Tags: lists the roles of various XHTML tags to help Builder
|
18
18
|
# use these tags as they are intended.
|
19
|
-
# * Markaby::Template: a class for hooking Markaby into Rails as a
|
20
|
-
# proper templating language.
|
21
19
|
module Markaby
|
22
|
-
version_file = File.expand_path(File.dirname(__FILE__) + "/../VERSION")
|
23
|
-
VERSION = File.read(version_file).strip
|
24
|
-
|
25
20
|
class InvalidXhtmlError < StandardError; end
|
26
21
|
end
|
27
22
|
|
23
|
+
require "markaby/version"
|
28
24
|
require 'builder' unless defined?(Builder)
|
29
25
|
require 'markaby/builder'
|
30
26
|
require 'markaby/cssproxy'
|
data/lib/markaby/builder.rb
CHANGED
@@ -28,7 +28,7 @@ module Markaby
|
|
28
28
|
:indent => 0,
|
29
29
|
:output_helpers => true,
|
30
30
|
:output_xml_instruction => true,
|
31
|
-
:output_meta_tag =>
|
31
|
+
:output_meta_tag => 'xhtml',
|
32
32
|
:auto_validation => true,
|
33
33
|
:tagset => Markaby::XHTMLTransitional,
|
34
34
|
:root_attributes => {
|
@@ -38,12 +38,26 @@ module Markaby
|
|
38
38
|
}
|
39
39
|
}
|
40
40
|
|
41
|
+
HTML5_OPTIONS = {
|
42
|
+
:indent => 0,
|
43
|
+
:output_helpers => true,
|
44
|
+
:output_xml_instruction => false,
|
45
|
+
:output_meta_tag => 'html5',
|
46
|
+
:auto_validation => true,
|
47
|
+
:tagset => Markaby::HTML5,
|
48
|
+
:root_attributes => {}
|
49
|
+
}
|
50
|
+
|
41
51
|
@@options = DEFAULT_OPTIONS.dup
|
42
52
|
|
43
53
|
def self.restore_defaults!
|
44
54
|
@@options = DEFAULT_OPTIONS.dup
|
45
55
|
end
|
46
56
|
|
57
|
+
def self.set_html5_options!
|
58
|
+
@@options = HTML5_OPTIONS.dup
|
59
|
+
end
|
60
|
+
|
47
61
|
def self.set(option, value)
|
48
62
|
@@options[option] = value
|
49
63
|
end
|
data/lib/markaby/builder_tags.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Markaby
|
2
2
|
module BuilderTags
|
3
|
-
(
|
3
|
+
(HTML5.tags - [:head]).each do |k|
|
4
4
|
class_eval <<-CODE, __FILE__, __LINE__
|
5
5
|
def #{k}(*args, &block)
|
6
6
|
html_tag(#{k.inspect}, *args, &block)
|
@@ -28,7 +28,8 @@ module Markaby
|
|
28
28
|
# set to <tt>text/html; charset=utf-8</tt>.
|
29
29
|
def head(*args, &block)
|
30
30
|
tag!(:head, *args) do
|
31
|
-
tag!(:meta, "http-equiv" => "Content-Type", "content" => "text/html; charset=utf-8") if @output_meta_tag
|
31
|
+
tag!(:meta, "http-equiv" => "Content-Type", "content" => "text/html; charset=utf-8") if @output_meta_tag == 'xhtml'
|
32
|
+
tag!(:meta, "charset" => "utf-8") if @output_meta_tag == 'html5'
|
32
33
|
instance_eval(&block)
|
33
34
|
end
|
34
35
|
end
|
@@ -53,6 +54,20 @@ module Markaby
|
|
53
54
|
xhtml_html(attrs, &block)
|
54
55
|
end
|
55
56
|
|
57
|
+
# Builds an html tag with HTML5 doctype instead.
|
58
|
+
def html5(attrs = {}, &block)
|
59
|
+
enable_html5!
|
60
|
+
html5_html(attrs, &block)
|
61
|
+
end
|
62
|
+
|
63
|
+
def enable_html5!
|
64
|
+
self.tagset = Markaby::HTML5
|
65
|
+
|
66
|
+
Markaby::Builder::HTML5_OPTIONS.each do |k, v|
|
67
|
+
self.instance_variable_set("@#{k}".to_sym, v)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
56
71
|
private
|
57
72
|
|
58
73
|
def xhtml_html(attrs = {}, &block)
|
@@ -60,5 +75,10 @@ module Markaby
|
|
60
75
|
declare!(:DOCTYPE, :html, :PUBLIC, *tagset.doctype)
|
61
76
|
tag!(:html, @root_attributes.merge(attrs), &block)
|
62
77
|
end
|
78
|
+
|
79
|
+
def html5_html(attrs = {}, &block)
|
80
|
+
declare!(:DOCTYPE, :html)
|
81
|
+
tag!(:html, @root_attributes.merge(attrs), &block)
|
82
|
+
end
|
63
83
|
end
|
64
84
|
end
|