tilt 2.1.0 → 2.2.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 +18 -25
- 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 +18 -12
- data/lib/tilt/erubi.rb +7 -6
- data/lib/tilt/erubis.rb +12 -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 +15 -23
- 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 +25 -67
- 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 +4 -3
- data/lib/tilt/template.rb +146 -56
- 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 +57 -30
- 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.rb
CHANGED
|
@@ -1,66 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require_relative 'tilt/mapping'
|
|
2
3
|
require_relative 'tilt/template'
|
|
3
4
|
|
|
4
5
|
# Namespace for Tilt. This module is not intended to be included anywhere.
|
|
5
6
|
module Tilt
|
|
6
7
|
# Current version.
|
|
7
|
-
VERSION = '2.
|
|
8
|
+
VERSION = '2.2.0'
|
|
9
|
+
|
|
10
|
+
EMPTY_HASH = {}.freeze
|
|
11
|
+
private_constant :EMPTY_HASH
|
|
8
12
|
|
|
9
13
|
@default_mapping = Mapping.new
|
|
10
14
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
# Replace the default mapping with a finalized version of the default
|
|
16
|
+
# mapping. This can be done to improve performance after the template
|
|
17
|
+
# libraries you desire to use have already been loaded. Once this is
|
|
18
|
+
# is called, all attempts to modify the default mapping will fail.
|
|
19
|
+
# This also freezes Tilt itself.
|
|
20
|
+
def self.finalize!
|
|
21
|
+
class << self
|
|
22
|
+
prepend(Module.new do
|
|
23
|
+
def lazy_map(*)
|
|
24
|
+
raise "Tilt.#{__callee__} not supported after Tilt.finalize! has been called"
|
|
25
|
+
end
|
|
26
|
+
alias register lazy_map
|
|
27
|
+
alias register_lazy lazy_map
|
|
28
|
+
alias register_pipeline lazy_map
|
|
29
|
+
alias prefer lazy_map
|
|
30
|
+
end)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
@default_mapping = @default_mapping.finalized
|
|
34
|
+
|
|
35
|
+
freeze
|
|
14
36
|
end
|
|
15
37
|
|
|
16
38
|
# @private
|
|
17
39
|
def self.lazy_map
|
|
18
|
-
default_mapping.lazy_map
|
|
40
|
+
@default_mapping.lazy_map
|
|
19
41
|
end
|
|
20
42
|
|
|
21
43
|
# @see Tilt::Mapping#register
|
|
22
44
|
def self.register(template_class, *extensions)
|
|
23
|
-
default_mapping.register(template_class, *extensions)
|
|
45
|
+
@default_mapping.register(template_class, *extensions)
|
|
24
46
|
end
|
|
25
47
|
|
|
26
48
|
# @see Tilt::Mapping#register_lazy
|
|
27
49
|
def self.register_lazy(class_name, file, *extensions)
|
|
28
|
-
default_mapping.register_lazy(class_name, file, *extensions)
|
|
50
|
+
@default_mapping.register_lazy(class_name, file, *extensions)
|
|
29
51
|
end
|
|
30
52
|
|
|
31
53
|
# @see Tilt::Mapping#register_pipeline
|
|
32
|
-
def self.register_pipeline(ext, options=
|
|
33
|
-
default_mapping.register_pipeline(ext, options)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# @deprecated Use {register} instead.
|
|
37
|
-
def self.prefer(template_class, *extensions)
|
|
38
|
-
register(template_class, *extensions)
|
|
54
|
+
def self.register_pipeline(ext, options=EMPTY_HASH)
|
|
55
|
+
@default_mapping.register_pipeline(ext, options)
|
|
39
56
|
end
|
|
40
57
|
|
|
41
58
|
# @see Tilt::Mapping#registered?
|
|
42
59
|
def self.registered?(ext)
|
|
43
|
-
default_mapping.registered?(ext)
|
|
60
|
+
@default_mapping.registered?(ext)
|
|
44
61
|
end
|
|
45
62
|
|
|
46
63
|
# @see Tilt::Mapping#new
|
|
47
|
-
def self.new(file, line=nil, options=
|
|
48
|
-
default_mapping.new(file, line, options, &block)
|
|
64
|
+
def self.new(file, line=nil, options=nil, &block)
|
|
65
|
+
@default_mapping.new(file, line, options, &block)
|
|
49
66
|
end
|
|
50
67
|
|
|
51
68
|
# @see Tilt::Mapping#[]
|
|
52
69
|
def self.[](file)
|
|
53
|
-
default_mapping[file]
|
|
70
|
+
@default_mapping[file]
|
|
54
71
|
end
|
|
55
72
|
|
|
56
73
|
# @see Tilt::Mapping#template_for
|
|
57
74
|
def self.template_for(file)
|
|
58
|
-
default_mapping.template_for(file)
|
|
75
|
+
@default_mapping.template_for(file)
|
|
59
76
|
end
|
|
60
77
|
|
|
61
78
|
# @see Tilt::Mapping#templates_for
|
|
62
79
|
def self.templates_for(file)
|
|
63
|
-
default_mapping.templates_for(file)
|
|
80
|
+
@default_mapping.templates_for(file)
|
|
64
81
|
end
|
|
65
82
|
|
|
66
83
|
# @return the template object that is currently rendering.
|
|
@@ -72,9 +89,18 @@ module Tilt
|
|
|
72
89
|
# @note This is currently an experimental feature and might return nil
|
|
73
90
|
# in the future.
|
|
74
91
|
def self.current_template
|
|
92
|
+
warn "Tilt.current_template is deprecated and will be removed in Tilt 2.3", uplevel: 1
|
|
75
93
|
Thread.current[:tilt_current_template]
|
|
76
94
|
end
|
|
77
95
|
|
|
96
|
+
class << self
|
|
97
|
+
# @return [Tilt::Mapping] the main mapping object
|
|
98
|
+
attr_reader :default_mapping
|
|
99
|
+
|
|
100
|
+
# Alias register as prefer for Tilt 1.x compatibility.
|
|
101
|
+
alias prefer register
|
|
102
|
+
end
|
|
103
|
+
|
|
78
104
|
# Extremely simple template cache implementation. Calling applications
|
|
79
105
|
# create a Tilt::Cache instance and use #fetch with any set of hashable
|
|
80
106
|
# arguments (such as those to Tilt.new):
|
|
@@ -115,7 +141,10 @@ module Tilt
|
|
|
115
141
|
@cache = {}
|
|
116
142
|
end
|
|
117
143
|
end
|
|
118
|
-
|
|
144
|
+
# :nocov:
|
|
145
|
+
# TILT3: Remove Tilt::Cache
|
|
146
|
+
deprecate_constant :Cache if respond_to?(:deprecate_constant, true)
|
|
147
|
+
# :nocov:
|
|
119
148
|
|
|
120
149
|
# Template Implementations ================================================
|
|
121
150
|
|
|
@@ -125,7 +154,6 @@ module Tilt
|
|
|
125
154
|
register_lazy :ErubiTemplate, 'tilt/erubi', 'erb', 'rhtml', 'erubi'
|
|
126
155
|
|
|
127
156
|
# Markdown
|
|
128
|
-
register_lazy :BlueClothTemplate, 'tilt/bluecloth', 'markdown', 'mkd', 'md'
|
|
129
157
|
register_lazy :MarukuTemplate, 'tilt/maruku', 'markdown', 'mkd', 'md'
|
|
130
158
|
register_lazy :KramdownTemplate, 'tilt/kramdown', 'markdown', 'mkd', 'md'
|
|
131
159
|
register_lazy :RDiscountTemplate, 'tilt/rdiscount', 'markdown', 'mkd', 'md'
|
|
@@ -143,7 +171,6 @@ module Tilt
|
|
|
143
171
|
register_lazy :CreoleTemplate, 'tilt/creole', 'wiki', 'creole'
|
|
144
172
|
register_lazy :EtanniTemplate, 'tilt/etanni', 'etn', 'etanni'
|
|
145
173
|
register_lazy :HamlTemplate, 'tilt/haml', 'haml'
|
|
146
|
-
register_lazy :LessTemplate, 'tilt/less', 'less'
|
|
147
174
|
register_lazy :LiquidTemplate, 'tilt/liquid', 'liquid'
|
|
148
175
|
register_lazy :LiveScriptTemplate, 'tilt/livescript','ls', 'livescript'
|
|
149
176
|
register_lazy :MarkabyTemplate, 'tilt/markaby', 'mab'
|
|
@@ -156,16 +183,16 @@ module Tilt
|
|
|
156
183
|
register_lazy :RstPandocTemplate, 'tilt/rst-pandoc', 'rst'
|
|
157
184
|
register_lazy :SassTemplate, 'tilt/sass', 'sass'
|
|
158
185
|
register_lazy :ScssTemplate, 'tilt/sass', 'scss'
|
|
159
|
-
register_lazy :
|
|
186
|
+
register_lazy :SlimTemplate, 'tilt/slim', 'slim'
|
|
160
187
|
register_lazy :StringTemplate, 'tilt/string', 'str'
|
|
161
188
|
register_lazy :TypeScriptTemplate, 'tilt/typescript', 'ts', 'tsx'
|
|
162
189
|
register_lazy :WikiClothTemplate, 'tilt/wikicloth', 'wiki', 'mediawiki', 'mw'
|
|
163
190
|
register_lazy :YajlTemplate, 'tilt/yajl', 'yajl'
|
|
164
191
|
|
|
165
|
-
#
|
|
166
|
-
|
|
167
|
-
register_lazy 'Tilt::HandlebarsTemplate', 'tilt/
|
|
168
|
-
register_lazy 'Tilt::OrgTemplate', '
|
|
169
|
-
register_lazy 'Tilt::
|
|
170
|
-
register_lazy 'Tilt::JbuilderTemplate', 'tilt/
|
|
192
|
+
# TILT3: Remove
|
|
193
|
+
# Deprecated lazy loading of external template engines
|
|
194
|
+
register_lazy 'Tilt::HandlebarsTemplate', 'tilt/_handlebars', 'handlebars', 'hbs'
|
|
195
|
+
register_lazy 'Tilt::OrgTemplate', 'tilt/_org', 'org'
|
|
196
|
+
register_lazy 'Tilt::OrgTemplate', 'tilt/_emacs_org', 'org'
|
|
197
|
+
register_lazy 'Tilt::JbuilderTemplate', 'tilt/_jbuilder', 'jbuilder'
|
|
171
198
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tilt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Tomayko
|
|
@@ -10,10 +10,10 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2023-
|
|
13
|
+
date: 2023-06-05 00:00:00.000000000 Z
|
|
14
14
|
dependencies: []
|
|
15
15
|
description: Generic interface to multiple Ruby template engines
|
|
16
|
-
email:
|
|
16
|
+
email: code@jeremyevans.net
|
|
17
17
|
executables:
|
|
18
18
|
- tilt
|
|
19
19
|
extensions: []
|
|
@@ -22,10 +22,14 @@ files:
|
|
|
22
22
|
- COPYING
|
|
23
23
|
- bin/tilt
|
|
24
24
|
- lib/tilt.rb
|
|
25
|
+
- lib/tilt/_emacs_org.rb
|
|
26
|
+
- lib/tilt/_handlebars.rb
|
|
27
|
+
- lib/tilt/_jbuilder.rb
|
|
28
|
+
- lib/tilt/_org.rb
|
|
25
29
|
- lib/tilt/asciidoc.rb
|
|
26
30
|
- lib/tilt/babel.rb
|
|
27
|
-
- lib/tilt/bluecloth.rb
|
|
28
31
|
- lib/tilt/builder.rb
|
|
32
|
+
- lib/tilt/cli.rb
|
|
29
33
|
- lib/tilt/coffee.rb
|
|
30
34
|
- lib/tilt/commonmarker.rb
|
|
31
35
|
- lib/tilt/creole.rb
|
|
@@ -36,7 +40,6 @@ files:
|
|
|
36
40
|
- lib/tilt/etanni.rb
|
|
37
41
|
- lib/tilt/haml.rb
|
|
38
42
|
- lib/tilt/kramdown.rb
|
|
39
|
-
- lib/tilt/less.rb
|
|
40
43
|
- lib/tilt/liquid.rb
|
|
41
44
|
- lib/tilt/livescript.rb
|
|
42
45
|
- lib/tilt/mapping.rb
|
|
@@ -54,7 +57,7 @@ files:
|
|
|
54
57
|
- lib/tilt/redcloth.rb
|
|
55
58
|
- lib/tilt/rst-pandoc.rb
|
|
56
59
|
- lib/tilt/sass.rb
|
|
57
|
-
- lib/tilt/
|
|
60
|
+
- lib/tilt/slim.rb
|
|
58
61
|
- lib/tilt/string.rb
|
|
59
62
|
- lib/tilt/template.rb
|
|
60
63
|
- lib/tilt/typescript.rb
|
|
@@ -89,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
89
92
|
- !ruby/object:Gem::Version
|
|
90
93
|
version: '0'
|
|
91
94
|
requirements: []
|
|
92
|
-
rubygems_version: 3.4.
|
|
95
|
+
rubygems_version: 3.4.10
|
|
93
96
|
signing_key:
|
|
94
97
|
specification_version: 4
|
|
95
98
|
summary: Generic interface to multiple Ruby template engines
|
data/lib/tilt/bluecloth.rb
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
require 'tilt/template'
|
|
2
|
-
require 'bluecloth'
|
|
3
|
-
|
|
4
|
-
warn "Tilt::BlueClothTemplate is deprecated, please switch to a different markdown implementation"
|
|
5
|
-
|
|
6
|
-
module Tilt
|
|
7
|
-
# BlueCloth Markdown implementation. See:
|
|
8
|
-
# http://deveiate.org/projects/BlueCloth/
|
|
9
|
-
class BlueClothTemplate < Template
|
|
10
|
-
self.default_mime_type = 'text/html'
|
|
11
|
-
|
|
12
|
-
def prepare
|
|
13
|
-
@engine = BlueCloth.new(data, options)
|
|
14
|
-
@output = nil
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def evaluate(scope, locals, &block)
|
|
18
|
-
@output ||= @engine.to_html
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def allows_script?
|
|
22
|
-
false
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
data/lib/tilt/less.rb
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
require 'tilt/template'
|
|
2
|
-
require 'less'
|
|
3
|
-
|
|
4
|
-
warn "Tilt::LessTemplate is deprecated, consider switching from LESS to SCSS"
|
|
5
|
-
|
|
6
|
-
module Tilt
|
|
7
|
-
# Lessscss template implementation. See:
|
|
8
|
-
# http://lesscss.org/
|
|
9
|
-
#
|
|
10
|
-
# Less templates do not support object scopes, locals, or yield.
|
|
11
|
-
class LessTemplate < Template
|
|
12
|
-
self.default_mime_type = 'text/css'
|
|
13
|
-
|
|
14
|
-
def prepare
|
|
15
|
-
if ::Less.const_defined? :Engine
|
|
16
|
-
@engine = ::Less::Engine.new(data)
|
|
17
|
-
else
|
|
18
|
-
parser = ::Less::Parser.new(options.merge :filename => eval_file, :line => line)
|
|
19
|
-
@engine = parser.parse(data)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def evaluate(scope, locals, &block)
|
|
24
|
-
@output ||= @engine.to_css(options)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def allows_script?
|
|
28
|
-
false
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
data/lib/tilt/sigil.rb
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
require 'open3'
|
|
2
|
-
require 'shellwords'
|
|
3
|
-
|
|
4
|
-
warn "Tilt::SigilTemplate is deprecated"
|
|
5
|
-
|
|
6
|
-
module Tilt
|
|
7
|
-
# Standalone string interpolator and template processor implementation in Go.
|
|
8
|
-
# see: https://github.com/gliderlabs/sigil
|
|
9
|
-
class SigilTemplate < Template
|
|
10
|
-
def prepare
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def evaluate(scope, locals, &block)
|
|
14
|
-
variables = locals.map {|k, v| "#{k}=#{v}" }
|
|
15
|
-
|
|
16
|
-
cmd = ['sigil']
|
|
17
|
-
|
|
18
|
-
unless variables.empty?
|
|
19
|
-
cmd << '-p'
|
|
20
|
-
cmd.concat(variables)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
out, err, status = Open3.capture3(*cmd, :stdin_data => data)
|
|
24
|
-
|
|
25
|
-
if status.success?
|
|
26
|
-
out.chomp
|
|
27
|
-
else
|
|
28
|
-
raise err.chomp.gsub('<stdin>', file)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def allows_script?
|
|
33
|
-
false
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|