tilt 2.1.0 → 2.3.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.
- 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
|