tilt 2.1.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/COPYING +1 -0
- data/bin/tilt +2 -120
- data/lib/tilt/_emacs_org.rb +2 -0
- data/lib/tilt/_handlebars.rb +2 -0
- data/lib/tilt/_jbuilder.rb +2 -0
- data/lib/tilt/_org.rb +2 -0
- data/lib/tilt/asciidoc.rb +11 -23
- data/lib/tilt/babel.rb +5 -13
- data/lib/tilt/builder.rb +18 -13
- data/lib/tilt/cli.rb +134 -0
- data/lib/tilt/coffee.rb +12 -31
- data/lib/tilt/commonmarker.rb +47 -81
- data/lib/tilt/creole.rb +9 -20
- data/lib/tilt/csv.rb +5 -4
- data/lib/tilt/erb.rb +9 -17
- data/lib/tilt/erubi.rb +7 -6
- data/lib/tilt/erubis.rb +9 -6
- data/lib/tilt/etanni.rb +3 -2
- data/lib/tilt/haml.rb +12 -9
- data/lib/tilt/kramdown.rb +8 -20
- data/lib/tilt/liquid.rb +10 -14
- data/lib/tilt/livescript.rb +8 -20
- data/lib/tilt/mapping.rb +180 -104
- data/lib/tilt/markaby.rb +5 -7
- data/lib/tilt/maruku.rb +5 -19
- data/lib/tilt/nokogiri.rb +11 -10
- data/lib/tilt/pandoc.rb +33 -51
- data/lib/tilt/pipeline.rb +1 -0
- data/lib/tilt/plain.rb +4 -15
- data/lib/tilt/prawn.rb +10 -25
- data/lib/tilt/radius.rb +15 -22
- data/lib/tilt/rdiscount.rb +17 -33
- data/lib/tilt/rdoc.rb +14 -35
- data/lib/tilt/redcarpet.rb +20 -75
- data/lib/tilt/redcloth.rb +9 -19
- data/lib/tilt/rst-pandoc.rb +6 -19
- data/lib/tilt/sass.rb +34 -43
- data/lib/tilt/slim.rb +5 -0
- data/lib/tilt/string.rb +9 -3
- data/lib/tilt/template.rb +151 -61
- data/lib/tilt/typescript.rb +11 -18
- data/lib/tilt/wikicloth.rb +7 -19
- data/lib/tilt/yajl.rb +5 -11
- data/lib/tilt.rb +56 -40
- metadata +10 -7
- data/lib/tilt/bluecloth.rb +0 -26
- data/lib/tilt/less.rb +0 -32
- data/lib/tilt/sigil.rb +0 -36
data/lib/tilt/maruku.rb
CHANGED
@@ -1,22 +1,8 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'maruku'
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
class MarukuTemplate < Template
|
8
|
-
def prepare
|
9
|
-
@engine = Maruku.new(data, options)
|
10
|
-
@output = nil
|
11
|
-
end
|
12
|
-
|
13
|
-
def evaluate(scope, locals, &block)
|
14
|
-
@output ||= @engine.to_html
|
15
|
-
end
|
16
|
-
|
17
|
-
def allows_script?
|
18
|
-
false
|
19
|
-
end
|
20
|
-
end
|
5
|
+
# Maruku markdown implementation. See: https://github.com/bhollis/maruku
|
6
|
+
Tilt::MarukuTemplate = Tilt::StaticTemplate.subclass do
|
7
|
+
Maruku.new(@data, @options).to_html
|
21
8
|
end
|
22
|
-
|
data/lib/tilt/nokogiri.rb
CHANGED
@@ -1,21 +1,23 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'nokogiri'
|
3
4
|
|
4
5
|
module Tilt
|
5
6
|
# Nokogiri template implementation. See:
|
6
7
|
# http://nokogiri.org/
|
7
8
|
class NokogiriTemplate < Template
|
8
|
-
DOCUMENT_HEADER =
|
9
|
+
DOCUMENT_HEADER = /\A<\?xml version=\"1\.0\"\?>\n?/
|
9
10
|
self.default_mime_type = 'text/xml'
|
10
11
|
|
11
|
-
def prepare; end
|
12
|
-
|
13
12
|
def evaluate(scope, locals)
|
14
|
-
if data.respond_to?(:to_str)
|
15
|
-
|
16
|
-
|
13
|
+
if @data.respond_to?(:to_str)
|
14
|
+
if block_given?
|
15
|
+
super(scope, locals){yield.sub(DOCUMENT_HEADER, "")}
|
16
|
+
else
|
17
|
+
super
|
18
|
+
end
|
17
19
|
else
|
18
|
-
::Nokogiri::XML::Builder.new
|
20
|
+
::Nokogiri::XML::Builder.new(&@data).to_xml
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
@@ -29,8 +31,7 @@ module Tilt
|
|
29
31
|
end
|
30
32
|
|
31
33
|
def precompiled_template(locals)
|
32
|
-
data.to_str
|
34
|
+
@data.to_str
|
33
35
|
end
|
34
36
|
end
|
35
37
|
end
|
36
|
-
|
data/lib/tilt/pandoc.rb
CHANGED
@@ -1,57 +1,39 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'pandoc-ruby'
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
#
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
result << k
|
33
|
-
when false
|
34
|
-
# do nothing
|
35
|
-
else
|
36
|
-
result << { k => v }
|
37
|
-
end
|
38
|
-
end
|
5
|
+
# Pandoc markdown implementation. See: http://pandoc.org/
|
6
|
+
Tilt::PandocTemplate = Tilt::StaticTemplate.subclass do
|
7
|
+
# turn options hash into an array
|
8
|
+
# Map tilt options to pandoc options
|
9
|
+
# Replace hash keys with value true with symbol for key
|
10
|
+
# Remove hash keys with value false
|
11
|
+
# Leave other hash keys untouched
|
12
|
+
pandoc_options = []
|
13
|
+
from = "markdown"
|
14
|
+
smart_extension = "-smart"
|
15
|
+
@options.each do |k,v|
|
16
|
+
case k
|
17
|
+
when :smartypants
|
18
|
+
smart_extension = "+smart" if v
|
19
|
+
when :escape_html
|
20
|
+
from = "markdown-raw_html" if v
|
21
|
+
when :commonmark
|
22
|
+
from = "commonmark" if v
|
23
|
+
when :markdown_strict
|
24
|
+
from = "markdown_strict" if v
|
25
|
+
else
|
26
|
+
case v
|
27
|
+
when true
|
28
|
+
pandoc_options << k
|
29
|
+
when false
|
30
|
+
# do nothing
|
31
|
+
else
|
32
|
+
pandoc_options << { k => v }
|
39
33
|
end
|
40
|
-
result << { :f => from + smart_extension }
|
41
|
-
result
|
42
|
-
end
|
43
|
-
|
44
|
-
def prepare
|
45
|
-
@engine = PandocRuby.new(data, *pandoc_options)
|
46
|
-
@output = nil
|
47
|
-
end
|
48
|
-
|
49
|
-
def evaluate(scope, locals, &block)
|
50
|
-
@output ||= @engine.to_html.strip
|
51
|
-
end
|
52
|
-
|
53
|
-
def allows_script?
|
54
|
-
false
|
55
34
|
end
|
56
35
|
end
|
36
|
+
pandoc_options << { :f => from + smart_extension }
|
37
|
+
|
38
|
+
PandocRuby.new(@data, *pandoc_options).to_html.strip
|
57
39
|
end
|
data/lib/tilt/pipeline.rb
CHANGED
data/lib/tilt/plain.rb
CHANGED
@@ -1,16 +1,5 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
# Raw text (no template functionality).
|
6
|
-
class PlainTemplate < Template
|
7
|
-
self.default_mime_type = 'text/html'
|
8
|
-
|
9
|
-
def prepare
|
10
|
-
end
|
11
|
-
|
12
|
-
def evaluate(scope, locals, &block)
|
13
|
-
@output ||= data
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
4
|
+
# Raw text (no template functionality).
|
5
|
+
Tilt::PlainTemplate = Tilt::StaticTemplate.subclass{@data}
|
data/lib/tilt/prawn.rb
CHANGED
@@ -1,43 +1,28 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'prawn'
|
3
4
|
|
4
5
|
module Tilt
|
5
6
|
# Prawn template implementation. See: http://prawnpdf.org
|
6
|
-
#
|
7
7
|
class PrawnTemplate < Template
|
8
8
|
self.default_mime_type = 'application/pdf'
|
9
9
|
|
10
10
|
def prepare
|
11
|
-
@
|
11
|
+
@options[:page_size] = 'A4' unless @options.has_key?(:page_size)
|
12
|
+
@options[:page_layout] = :portrait unless @options.has_key?(:page_layout)
|
13
|
+
@engine = ::Prawn::Document.new(@options)
|
12
14
|
end
|
13
15
|
|
14
16
|
def evaluate(scope, locals, &block)
|
15
17
|
pdf = @engine
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
data.call(pdf)
|
21
|
-
end
|
22
|
-
@output ||= pdf.render
|
23
|
-
end
|
24
|
-
|
25
|
-
def allows_script?
|
26
|
-
false
|
18
|
+
locals = locals.dup
|
19
|
+
locals[:pdf] = pdf
|
20
|
+
super
|
21
|
+
pdf.render
|
27
22
|
end
|
28
23
|
|
29
24
|
def precompiled_template(locals)
|
30
|
-
data.to_str
|
25
|
+
@data.to_str
|
31
26
|
end
|
32
|
-
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def prawn_options
|
37
|
-
# defaults to A4 instead of crazy US Letter format.
|
38
|
-
{ :page_size => "A4", :page_layout => :portrait }.merge(options)
|
39
|
-
end
|
40
|
-
|
41
27
|
end
|
42
|
-
|
43
28
|
end
|
data/lib/tilt/radius.rb
CHANGED
@@ -1,44 +1,37 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'radius'
|
3
4
|
|
4
5
|
module Tilt
|
5
6
|
# Radius Template
|
6
7
|
# http://github.com/jlong/radius/
|
7
8
|
class RadiusTemplate < Template
|
8
|
-
|
9
|
-
|
10
|
-
attr_accessor :tilt_scope
|
9
|
+
class ContextClass < Radius::Context
|
10
|
+
attr_accessor :tilt_scope
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
def dup
|
17
|
-
i = super
|
18
|
-
i.tilt_scope = tilt_scope
|
19
|
-
i
|
20
|
-
end
|
12
|
+
def tag_missing(name, attributes)
|
13
|
+
tilt_scope.__send__(name)
|
21
14
|
end
|
22
|
-
end
|
23
15
|
|
24
|
-
|
16
|
+
def dup
|
17
|
+
i = super
|
18
|
+
i.tilt_scope = tilt_scope
|
19
|
+
i
|
20
|
+
end
|
25
21
|
end
|
26
22
|
|
27
23
|
def evaluate(scope, locals, &block)
|
28
|
-
context =
|
24
|
+
context = ContextClass.new
|
29
25
|
context.tilt_scope = scope
|
30
|
-
context.define_tag("yield")
|
31
|
-
block.call
|
32
|
-
end
|
26
|
+
context.define_tag("yield", &block) if block
|
33
27
|
locals.each do |tag, value|
|
34
28
|
context.define_tag(tag) do
|
35
29
|
value
|
36
30
|
end
|
37
31
|
end
|
38
32
|
|
39
|
-
options
|
40
|
-
|
41
|
-
parser.parse(data)
|
33
|
+
@options[:tag_prefix] = 'r' unless @options.has_key?(:tag_prefix)
|
34
|
+
Radius::Parser.new(context, @options).parse(@data)
|
42
35
|
end
|
43
36
|
|
44
37
|
def allows_script?
|
data/lib/tilt/rdiscount.rb
CHANGED
@@ -1,39 +1,23 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'rdiscount'
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# RDiscount is a simple text filter. It does not support +scope+ or
|
9
|
-
# +locals+. The +:smart+ and +:filter_html+ options may be set true
|
10
|
-
# to enable those flags on the underlying RDiscount object.
|
11
|
-
class RDiscountTemplate < Template
|
12
|
-
self.default_mime_type = 'text/html'
|
5
|
+
aliases = {
|
6
|
+
:escape_html => :filter_html,
|
7
|
+
:smartypants => :smart
|
8
|
+
}.freeze
|
13
9
|
|
14
|
-
|
15
|
-
:escape_html => :filter_html,
|
16
|
-
:smartypants => :smart
|
17
|
-
}
|
10
|
+
_flags = [:smart, :filter_html, :smartypants, :escape_html].freeze
|
18
11
|
|
19
|
-
|
12
|
+
# Discount Markdown implementation. See:
|
13
|
+
# http://github.com/rtomayko/rdiscount
|
14
|
+
#
|
15
|
+
# RDiscount is a simple text filter. It does not support +scope+ or
|
16
|
+
# +locals+. The +:smart+ and +:filter_html+ options may be set true
|
17
|
+
# to enable those flags on the underlying RDiscount object.
|
18
|
+
Tilt::RDiscountTemplate = Tilt::StaticTemplate.subclass do
|
19
|
+
flags = _flags.select { |flag| @options[flag] }.
|
20
|
+
map! { |flag| aliases[flag] || flag }
|
20
21
|
|
21
|
-
|
22
|
-
FLAGS.select { |flag| options[flag] }.map { |flag| ALIAS[flag] || flag }
|
23
|
-
end
|
24
|
-
|
25
|
-
def prepare
|
26
|
-
@engine = RDiscount.new(data, *flags)
|
27
|
-
@output = nil
|
28
|
-
end
|
29
|
-
|
30
|
-
def evaluate(scope, locals, &block)
|
31
|
-
@output ||= @engine.to_html
|
32
|
-
end
|
33
|
-
|
34
|
-
def allows_script?
|
35
|
-
false
|
36
|
-
end
|
37
|
-
end
|
22
|
+
RDiscount.new(@data, *flags).to_html
|
38
23
|
end
|
39
|
-
|
data/lib/tilt/rdoc.rb
CHANGED
@@ -1,40 +1,19 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'rdoc'
|
3
4
|
require 'rdoc/markup'
|
4
5
|
require 'rdoc/markup/to_html'
|
6
|
+
require 'rdoc/options'
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
begin
|
18
|
-
# RDoc 4.0
|
19
|
-
require 'rdoc/options'
|
20
|
-
RDoc::Markup::ToHtml.new(RDoc::Options.new, nil)
|
21
|
-
rescue ArgumentError
|
22
|
-
# RDoc < 4.0
|
23
|
-
RDoc::Markup::ToHtml.new
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def prepare
|
28
|
-
@engine = markup.convert(data)
|
29
|
-
@output = nil
|
30
|
-
end
|
31
|
-
|
32
|
-
def evaluate(scope, locals, &block)
|
33
|
-
@output ||= @engine.to_s
|
34
|
-
end
|
35
|
-
|
36
|
-
def allows_script?
|
37
|
-
false
|
38
|
-
end
|
39
|
-
end
|
8
|
+
# RDoc template. See: https://github.com/ruby/rdoc
|
9
|
+
#
|
10
|
+
# It's suggested that your program run the following at load time when
|
11
|
+
# using this templae engine in a threaded environment:
|
12
|
+
#
|
13
|
+
# require 'rdoc'
|
14
|
+
# require 'rdoc/markup'
|
15
|
+
# require 'rdoc/markup/to_html'
|
16
|
+
# require 'rdoc/options'
|
17
|
+
Tilt::RDocTemplate = Tilt::StaticTemplate.subclass do
|
18
|
+
RDoc::Markup::ToHtml.new(RDoc::Options.new, nil).convert(@data).to_s
|
40
19
|
end
|
data/lib/tilt/redcarpet.rb
CHANGED
@@ -1,86 +1,31 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'redcarpet'
|
3
4
|
|
4
|
-
|
5
|
-
# Compatibility mode for Redcarpet 1.x
|
6
|
-
class Redcarpet1Template < Template
|
7
|
-
self.default_mime_type = 'text/html'
|
5
|
+
aliases = {:escape_html => :filter_html, :smartypants => :smart}.freeze
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
FLAGS = [:smart, :filter_html, :smartypants, :escape_html]
|
15
|
-
|
16
|
-
def flags
|
17
|
-
FLAGS.select { |flag| options[flag] }.map { |flag| ALIAS[flag] || flag }
|
18
|
-
end
|
19
|
-
|
20
|
-
def prepare
|
21
|
-
@engine = RedcarpetCompat.new(data, *flags)
|
22
|
-
@output = nil
|
23
|
-
end
|
24
|
-
|
25
|
-
def evaluate(scope, locals, &block)
|
26
|
-
@output ||= @engine.to_html
|
27
|
-
end
|
28
|
-
|
29
|
-
def allows_script?
|
30
|
-
false
|
7
|
+
Tilt::RedcarpetTemplate = Tilt::StaticTemplate.subclass do
|
8
|
+
aliases.each do |opt, aka|
|
9
|
+
if options.key?(aka) || !@options.key?(opt)
|
10
|
+
@options[opt] = @options.delete(aka)
|
31
11
|
end
|
32
12
|
end
|
33
13
|
|
34
|
-
#
|
35
|
-
|
36
|
-
self.default_mime_type = 'text/html'
|
37
|
-
|
38
|
-
def generate_renderer
|
39
|
-
renderer = options.delete(:renderer) || ::Redcarpet::Render::HTML.new(options)
|
40
|
-
return renderer unless options.delete(:smartypants)
|
41
|
-
return renderer if renderer.is_a?(Class) && renderer <= ::Redcarpet::Render::SmartyPants
|
14
|
+
# only raise an exception if someone is trying to enable :escape_html
|
15
|
+
@options.delete(:escape_html) unless @options[:escape_html]
|
42
16
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
17
|
+
renderer = @options.delete(:renderer) || ::Redcarpet::Render::HTML.new(@options)
|
18
|
+
if options.delete(:smartypants) && !(renderer.is_a?(Class) && renderer <= ::Redcarpet::Render::SmartyPants)
|
19
|
+
renderer = if renderer == ::Redcarpet::Render::XHTML
|
20
|
+
::Redcarpet::Render::SmartyHTML.new(:xhtml => true)
|
21
|
+
elsif renderer == ::Redcarpet::Render::HTML
|
22
|
+
::Redcarpet::Render::SmartyHTML
|
23
|
+
elsif renderer.is_a? Class
|
24
|
+
Class.new(renderer) { include ::Redcarpet::Render::SmartyPants }
|
25
|
+
else
|
26
|
+
renderer.extend ::Redcarpet::Render::SmartyPants
|
52
27
|
end
|
53
|
-
|
54
|
-
def prepare
|
55
|
-
# try to support the same aliases
|
56
|
-
Redcarpet1Template::ALIAS.each do |opt, aka|
|
57
|
-
next if options.key? opt or not options.key? aka
|
58
|
-
options[opt] = options.delete(aka)
|
59
|
-
end
|
60
|
-
|
61
|
-
# only raise an exception if someone is trying to enable :escape_html
|
62
|
-
options.delete(:escape_html) unless options[:escape_html]
|
63
|
-
|
64
|
-
@engine = ::Redcarpet::Markdown.new(generate_renderer, options)
|
65
|
-
@output = nil
|
66
|
-
end
|
67
|
-
|
68
|
-
def evaluate(scope, locals, &block)
|
69
|
-
@output ||= @engine.render(data)
|
70
|
-
end
|
71
|
-
|
72
|
-
def allows_script?
|
73
|
-
false
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
if defined? ::Redcarpet::Render and defined? ::Redcarpet::Markdown
|
78
|
-
superclass = Redcarpet2Template
|
79
|
-
else
|
80
|
-
superclass = Redcarpet1Template
|
81
28
|
end
|
82
29
|
|
83
|
-
|
84
|
-
end
|
30
|
+
Redcarpet::Markdown.new(renderer, @options).render(@data)
|
85
31
|
end
|
86
|
-
|
data/lib/tilt/redcloth.rb
CHANGED
@@ -1,23 +1,13 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require 'redcloth'
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
options.each {|k, v| @engine.send("#{k}=", v) if @engine.respond_to? "#{k}="}
|
11
|
-
@output = nil
|
12
|
-
end
|
13
|
-
|
14
|
-
def evaluate(scope, locals, &block)
|
15
|
-
@output ||= @engine.to_html
|
16
|
-
end
|
17
|
-
|
18
|
-
def allows_script?
|
19
|
-
false
|
20
|
-
end
|
5
|
+
# RedCloth implementation. See: https://github.com/jgarber/redcloth
|
6
|
+
Tilt::RedClothTemplate = Tilt::StaticTemplate.subclass do
|
7
|
+
engine = RedCloth.new(@data)
|
8
|
+
@options.each do |k, v|
|
9
|
+
m = :"#{k}="
|
10
|
+
engine.send(m, v) if engine.respond_to? m
|
21
11
|
end
|
12
|
+
engine.to_html
|
22
13
|
end
|
23
|
-
|
data/lib/tilt/rst-pandoc.rb
CHANGED
@@ -1,23 +1,10 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'template'
|
2
3
|
require_relative 'pandoc'
|
3
4
|
|
4
|
-
|
5
|
-
# Pandoc reStructuredText implementation. See:
|
6
|
-
# http://pandoc.org/
|
7
|
-
class RstPandocTemplate < PandocTemplate
|
8
|
-
self.default_mime_type = 'text/html'
|
5
|
+
rst = {:f => "rst"}.freeze
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
def evaluate(scope, locals, &block)
|
16
|
-
@output ||= @engine.to_html.strip
|
17
|
-
end
|
18
|
-
|
19
|
-
def allows_script?
|
20
|
-
false
|
21
|
-
end
|
22
|
-
end
|
7
|
+
# Pandoc reStructuredText implementation. See: # http://pandoc.org/
|
8
|
+
Tilt::RstPandocTemplate = Tilt::StaticTemplate.subclass do
|
9
|
+
PandocRuby.new(@data, rst).to_html.strip
|
23
10
|
end
|