malt 0.1.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/History.rdoc +13 -0
- data/License.txt +204 -0
- data/README.rdoc +68 -0
- data/bin/malt +4 -0
- data/features/consistent_rendering.feature +36 -0
- data/features/samples/sample.erb +1 -0
- data/features/samples/sample.erubis +1 -0
- data/features/samples/sample.liquid +1 -0
- data/features/samples/sample.mustache +1 -0
- data/features/samples/sample.radius +1 -0
- data/features/step_definitions/engine_steps.rb +49 -0
- data/features/support/loadpath.rb +1 -0
- data/features/support/sample_class.rb +8 -0
- data/lib/malt.rb +79 -0
- data/lib/malt/core_ext.rb +31 -0
- data/lib/malt/engines.rb +10 -0
- data/lib/malt/engines/abstract.rb +151 -0
- data/lib/malt/engines/bluecloth.rb +39 -0
- data/lib/malt/engines/erb.rb +84 -0
- data/lib/malt/engines/erubis.rb +65 -0
- data/lib/malt/engines/haml.rb +68 -0
- data/lib/malt/engines/kramdown.rb +48 -0
- data/lib/malt/engines/less.rb +49 -0
- data/lib/malt/engines/liquid.rb +40 -0
- data/lib/malt/engines/radius.rb +90 -0
- data/lib/malt/engines/rdiscount.rb +49 -0
- data/lib/malt/engines/rdoc.rb +46 -0
- data/lib/malt/engines/redcloth.rb +42 -0
- data/lib/malt/engines/rtals.rb +46 -0
- data/lib/malt/engines/ruby.rb +36 -0
- data/lib/malt/engines/sass.rb +50 -0
- data/lib/malt/engines/tenjin.rb +61 -0
- data/lib/malt/formats.rb +10 -0
- data/lib/malt/formats/abstract.rb +195 -0
- data/lib/malt/formats/css.rb +34 -0
- data/lib/malt/formats/erb.rb +102 -0
- data/lib/malt/formats/haml.rb +53 -0
- data/lib/malt/formats/html.rb +29 -0
- data/lib/malt/formats/latex.rb +47 -0
- data/lib/malt/formats/less.rb +51 -0
- data/lib/malt/formats/liquid.rb +53 -0
- data/lib/malt/formats/markdown.rb +83 -0
- data/lib/malt/formats/pdf.rb +29 -0
- data/lib/malt/formats/radius.rb +47 -0
- data/lib/malt/formats/rdoc.rb +43 -0
- data/lib/malt/formats/rtals.rb +46 -0
- data/lib/malt/formats/ruby.rb +71 -0
- data/lib/malt/formats/sass.rb +56 -0
- data/lib/malt/formats/tenjin.rb +50 -0
- data/lib/malt/formats/text.rb +54 -0
- data/lib/malt/formats/textile.rb +59 -0
- data/lib/malt/formats/yaml.rb +50 -0
- data/lib/malt/kernel.rb +31 -0
- data/lib/malt/meta/data.rb +26 -0
- data/lib/malt/meta/gemfile +17 -0
- data/lib/malt/meta/profile +21 -0
- data/meta/data.rb +26 -0
- data/meta/gemfile +17 -0
- data/meta/profile +21 -0
- data/qed/01_overview.rdoc +44 -0
- data/qed/applique/malt.rb +12 -0
- metadata +283 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
require 'malt/formats/html'
|
3
|
+
require 'malt/engines/haml'
|
4
|
+
|
5
|
+
module Malt::Formats
|
6
|
+
|
7
|
+
# Haml looks like a Markup format, but it turns out to be
|
8
|
+
# a template format too.
|
9
|
+
class Haml < Abstract
|
10
|
+
|
11
|
+
register 'haml'
|
12
|
+
|
13
|
+
#
|
14
|
+
def haml
|
15
|
+
text
|
16
|
+
end
|
17
|
+
|
18
|
+
#
|
19
|
+
def to_haml
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
def html(data=nil, &yld)
|
25
|
+
render_engine.render(:format=>:html, :text=>text, :file=>file, :data=>data, &yld)
|
26
|
+
end
|
27
|
+
|
28
|
+
#
|
29
|
+
def to_html(data=nil, &yld)
|
30
|
+
text = html(data, &yld)
|
31
|
+
opts = options.merge(:text=>text, :file=>refile(:html), :type=>:html)
|
32
|
+
HTML.new(opts)
|
33
|
+
end
|
34
|
+
|
35
|
+
#
|
36
|
+
#def to_ruby(db, &yld)
|
37
|
+
# @ruby ||= (
|
38
|
+
# source = engine.compile(text, file)
|
39
|
+
# Ruby.new(:text=>source, :file=>refile(:rb))
|
40
|
+
# )
|
41
|
+
#end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
#
|
46
|
+
def render_engine
|
47
|
+
@render_engine ||= Malt::Engines::Haml.new(options)
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
|
3
|
+
module Malt::Formats
|
4
|
+
|
5
|
+
#
|
6
|
+
class HTML < Abstract
|
7
|
+
|
8
|
+
register 'html'
|
9
|
+
|
10
|
+
#
|
11
|
+
def html(*)
|
12
|
+
text
|
13
|
+
end
|
14
|
+
|
15
|
+
# HTML is HTML ;)
|
16
|
+
def to_html(*)
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
#
|
23
|
+
def render_engine
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
require 'malt/formats/pdf'
|
3
|
+
|
4
|
+
module Malt::Formats
|
5
|
+
|
6
|
+
#
|
7
|
+
class Latex < Abstract
|
8
|
+
|
9
|
+
register 'latex'
|
10
|
+
|
11
|
+
#
|
12
|
+
def latex
|
13
|
+
text
|
14
|
+
end
|
15
|
+
|
16
|
+
#
|
17
|
+
def to_latex
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
# TODO
|
22
|
+
def pdf
|
23
|
+
raise "not implemented yet"
|
24
|
+
end
|
25
|
+
|
26
|
+
# TODO
|
27
|
+
def to_pdf
|
28
|
+
text = pdf
|
29
|
+
opts = options.merge(:text=>text, :file=>refile(:pdf), :type=>:pdf)
|
30
|
+
PDF.new(opts)
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
#
|
36
|
+
def render_engine
|
37
|
+
end
|
38
|
+
|
39
|
+
# Latext default output type is PDF.
|
40
|
+
def default
|
41
|
+
:pdf
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
require 'malt/engines/less'
|
3
|
+
|
4
|
+
module Malt::Formats
|
5
|
+
|
6
|
+
# = LESS
|
7
|
+
#
|
8
|
+
# See http://lesscss.org/
|
9
|
+
#
|
10
|
+
class LESS < Abstract
|
11
|
+
|
12
|
+
register('less')
|
13
|
+
|
14
|
+
#
|
15
|
+
def less
|
16
|
+
text
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
def to_less
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
def css
|
26
|
+
render_engine.render(:text=>text, :file=>:file, :format=>:css)
|
27
|
+
end
|
28
|
+
|
29
|
+
#
|
30
|
+
def to_css
|
31
|
+
text = css
|
32
|
+
opts = options.merge(:text=>text, file=>refile(:css), :type=>:css)
|
33
|
+
CSS.new(opts)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
#
|
39
|
+
def render_engine
|
40
|
+
@render_engine ||= Malt::Engines::Less.new(options)
|
41
|
+
end
|
42
|
+
|
43
|
+
# LESS default output type is CSS.
|
44
|
+
def default
|
45
|
+
:css
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'malt/formats/abstract_template'
|
2
|
+
require 'malt/engines/liquid'
|
3
|
+
|
4
|
+
module Malt::Formats
|
5
|
+
|
6
|
+
# Liquid templates
|
7
|
+
#
|
8
|
+
# http://liquid.rubyforge.org/
|
9
|
+
#
|
10
|
+
class Liquid < AbstractTemplate
|
11
|
+
|
12
|
+
register 'liquid'
|
13
|
+
|
14
|
+
# #
|
15
|
+
# def to(type, data=nil, &yld)
|
16
|
+
# type = type.to_sym
|
17
|
+
# new_class = Malt.registry[type]
|
18
|
+
# new_text = render(data, &yld)
|
19
|
+
# new_file = refile(type)
|
20
|
+
# new_options = options.merge(:text=>new_text, :file=>new_file, :type=>type)
|
21
|
+
# new_class.new(new_options)
|
22
|
+
# end
|
23
|
+
|
24
|
+
# #
|
25
|
+
# def render(*type_and_data, &yld)
|
26
|
+
# type, data = parse_type_and_data(type_and_data)
|
27
|
+
# render_engine.render(:text=>text, :file=>file, :data=>data, &yld)
|
28
|
+
# end
|
29
|
+
|
30
|
+
# # Liquid templates can be any type.
|
31
|
+
# def method_missing(sym, *args, &yld)
|
32
|
+
# if Malt.registry.key?(sym)
|
33
|
+
# return render(sym, *args, &yld)
|
34
|
+
# elsif md = /^to_/.match(sym.to_s)
|
35
|
+
# type = md.post_match.to_sym
|
36
|
+
# if Malt.registry.key?(type)
|
37
|
+
# return to(type, *args, &yld)
|
38
|
+
# end
|
39
|
+
# end
|
40
|
+
# super(sym, *args, &yld)
|
41
|
+
# end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
#
|
46
|
+
def render_engine
|
47
|
+
@render_engine ||= Malt::Engines::Liquid.new(options)
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
require 'malt/formats/html'
|
3
|
+
require 'malt/formats/latex'
|
4
|
+
require 'malt/engines/rdiscount'
|
5
|
+
require 'malt/engines/bluecloth'
|
6
|
+
|
7
|
+
module Malt::Formats
|
8
|
+
|
9
|
+
# If using the Kramdown engine, then Latex is also a supported output format.
|
10
|
+
class Markdown < Abstract
|
11
|
+
|
12
|
+
register('markdown', 'md')
|
13
|
+
|
14
|
+
#
|
15
|
+
def html
|
16
|
+
render_engine.render(:text=>text, :file=>file, :format=>:html)
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
def latex
|
21
|
+
render_engine.render(:text=>text, :file=>file, :format=>:latex)
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
def markdown
|
26
|
+
text
|
27
|
+
end
|
28
|
+
|
29
|
+
#
|
30
|
+
alias_method :md, :markdown
|
31
|
+
|
32
|
+
# Convert to HTML.
|
33
|
+
def to_html
|
34
|
+
opts = options.merge(:text=>html, :file=>refile(:html), :type=>:html)
|
35
|
+
HTML.new(opts)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Latex is only supported by the Kramdown engine.
|
39
|
+
def to_latex
|
40
|
+
opts = options.merge(:text=>html, :file=>refile(:latex), :type=>:latex)
|
41
|
+
Latex.new(opts)
|
42
|
+
end
|
43
|
+
|
44
|
+
#
|
45
|
+
def to_markdown
|
46
|
+
self
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
alias_method :to_md, :to_markdown
|
51
|
+
|
52
|
+
#
|
53
|
+
#def render_to(to, *)
|
54
|
+
# case to
|
55
|
+
# when :markdown, :md
|
56
|
+
# text
|
57
|
+
# when :html
|
58
|
+
# malt_engine.render_html(text, file)
|
59
|
+
# when :txt # THINK: Does this make sense?
|
60
|
+
# text
|
61
|
+
# end
|
62
|
+
#end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
#
|
67
|
+
def render_engine
|
68
|
+
@render_engine ||= (
|
69
|
+
case engine
|
70
|
+
when :bluecloth
|
71
|
+
Malt::Engines::BlueCloth.new(options)
|
72
|
+
when :kramdown
|
73
|
+
Malt::Engines::Kramdown.new(options)
|
74
|
+
else
|
75
|
+
Malt::Engines::RDiscount.new(options)
|
76
|
+
end
|
77
|
+
)
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
|
3
|
+
module Malt::Formats
|
4
|
+
|
5
|
+
#
|
6
|
+
class PDF < Abstract
|
7
|
+
|
8
|
+
register 'pdf'
|
9
|
+
|
10
|
+
#
|
11
|
+
def pdf
|
12
|
+
text
|
13
|
+
end
|
14
|
+
|
15
|
+
#
|
16
|
+
def to_pdf
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
#
|
23
|
+
def render_engine
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
require 'malt/formats/html'
|
3
|
+
require 'malt/engines/radius'
|
4
|
+
|
5
|
+
module Malt::Formats
|
6
|
+
|
7
|
+
# Radius Template
|
8
|
+
#
|
9
|
+
# http://github.com/jlong/radius/
|
10
|
+
#
|
11
|
+
class Radius < Abstract
|
12
|
+
|
13
|
+
register('radius')
|
14
|
+
|
15
|
+
#
|
16
|
+
def radius
|
17
|
+
text
|
18
|
+
end
|
19
|
+
|
20
|
+
#
|
21
|
+
def to_radius
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
def html(data, &yld)
|
27
|
+
render_engine.render(:text=>text, :file=>file, :data=>data, &yld)
|
28
|
+
end
|
29
|
+
|
30
|
+
#
|
31
|
+
def to_html(data, &yld)
|
32
|
+
text = html(data, &yld)
|
33
|
+
opts = options.merge(:text=>text, :file=>refile(:html), :type=>:html)
|
34
|
+
HTML.new(opts)
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
#
|
40
|
+
def render_engine
|
41
|
+
@render_engine ||= Malt::Engines::Radius.new(options)
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
require 'malt/formats/html'
|
3
|
+
require 'malt/engines/rdoc'
|
4
|
+
|
5
|
+
module Malt::Formats
|
6
|
+
|
7
|
+
#
|
8
|
+
class RDoc < Abstract
|
9
|
+
|
10
|
+
register('rdoc')
|
11
|
+
|
12
|
+
#
|
13
|
+
def rdoc
|
14
|
+
text
|
15
|
+
end
|
16
|
+
|
17
|
+
#
|
18
|
+
def to_rdoc
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
#
|
23
|
+
def html
|
24
|
+
render_engine.render(:text=>text, :file=>file, :format=>:html)
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
def to_html
|
29
|
+
opts = options.merge(:text=>html, :file=>refile(:html), :type=>:html)
|
30
|
+
HTML.new(opts)
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
#
|
36
|
+
def render_engine
|
37
|
+
@render_engine ||= Malt::Engines::RDoc.new(options)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
require 'malt/formats/html'
|
3
|
+
require 'malt/engines/rtals'
|
4
|
+
|
5
|
+
module Malt::Formats
|
6
|
+
|
7
|
+
#
|
8
|
+
class Rtals < Abstract
|
9
|
+
|
10
|
+
register('rtal')
|
11
|
+
|
12
|
+
#
|
13
|
+
def html(data, &yld)
|
14
|
+
render_engine.render(:text=>text, :data=>data, &yld)
|
15
|
+
end
|
16
|
+
|
17
|
+
#
|
18
|
+
def to_html(data, &yld)
|
19
|
+
text = html(data, &yld)
|
20
|
+
opts = options.merge(:text=>text, :file=>refile(:html), :type=>:html)
|
21
|
+
HTML.new(opts)
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
def xml(data, &yld)
|
26
|
+
render_engine.render(:text=>text, :data=>data, &yld)
|
27
|
+
end
|
28
|
+
|
29
|
+
#
|
30
|
+
def to_xml(data, &yld)
|
31
|
+
text = xml(data, &yld)
|
32
|
+
opts = options.merge(:text=>text, :file=>refile(:xml), :type=>:xml)
|
33
|
+
HTML.new(opts)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
#
|
39
|
+
def render_engine
|
40
|
+
@render_engine ||= Malt::Engines::RTALS.new(options)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|