deplate 0.8 → 0.8.1
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/AUTHORS.TXT +19 -16
- data/CHANGES.TXT +214 -248
- data/NEWS.TXT +47 -30
- data/README.TXT +0 -1
- data/TODO.TXT +93 -20
- data/VERSION.TXT +1 -1
- data/bin/deplate.exy +192 -0
- data/etc/deplate.ini +70 -9
- data/lib/action_view/helpers/deplate.rb +33 -33
- data/lib/deplate.rb +2 -2
- data/lib/deplate/bib.rb +72 -41
- data/lib/deplate/builtin.rb +1 -1
- data/lib/deplate/cache.rb +1 -1
- data/lib/deplate/commands.rb +161 -102
- data/lib/deplate/common.rb +93 -7
- data/lib/deplate/converter.rb +10 -4
- data/lib/deplate/core.rb +215 -108
- data/lib/deplate/counters.rb +23 -8
- data/lib/deplate/css/article.css +9 -5
- data/lib/deplate/css/deplate.css +37 -3
- data/lib/deplate/css/heading-navbar.css +1 -1
- data/lib/deplate/css/highstep.css +18 -0
- data/lib/deplate/css/htmldoc.css +43 -0
- data/lib/deplate/css/layout-deplate-print.css +1 -1
- data/lib/deplate/css/layout-deplate.css +1 -1
- data/lib/deplate/css/play.css +101 -0
- data/lib/deplate/css/sans-serif.css +1 -1
- data/lib/deplate/css/serif-e.css +1 -1
- data/lib/deplate/css/serif-rel.css +1 -1
- data/lib/deplate/css/serif.css +1 -1
- data/lib/deplate/css/slides.css +1 -1
- data/lib/deplate/css/styles.css +4 -0
- data/lib/deplate/css/tabbar-right.css +54 -8
- data/lib/deplate/css/tabbar-top.css +28 -9
- data/lib/deplate/css/text-sans-serif.css +1 -1
- data/lib/deplate/css/text-serif.css +1 -1
- data/lib/deplate/define.rb +71 -38
- data/lib/deplate/deplate-string.rb +3 -3
- data/lib/deplate/docbook.rb +9 -9
- data/lib/deplate/elements.rb +173 -84
- data/lib/deplate/etc.rb +6 -8
- data/lib/deplate/external.rb +9 -5
- data/lib/deplate/fmt/dbk-article-4.1.2.rb +4 -3
- data/lib/deplate/fmt/dbk-article.rb +9 -8
- data/lib/deplate/fmt/dbk-book.rb +4 -3
- data/lib/deplate/fmt/dbk-ref.rb +5 -4
- data/lib/deplate/fmt/dbk-slides.rb +4 -3
- data/lib/deplate/fmt/dbk-snippet.rb +4 -3
- data/lib/deplate/fmt/html-snippet.rb +1 -1
- data/lib/deplate/fmt/html.rb +186 -46
- data/lib/deplate/fmt/htmlsite.rb +19 -9
- data/lib/deplate/fmt/htmlslides.rb +1 -1
- data/lib/deplate/fmt/htmlwebsite.rb +1 -1
- data/lib/deplate/fmt/latex-dramatist.rb +175 -0
- data/lib/deplate/fmt/latex-snippet.rb +1 -1
- data/lib/deplate/fmt/latex.rb +132 -80
- data/lib/deplate/fmt/null.rb +1 -1
- data/lib/deplate/fmt/php.rb +1 -1
- data/lib/deplate/fmt/phpsite.rb +1 -1
- data/lib/deplate/fmt/plain.rb +16 -9
- data/lib/deplate/fmt/template.rb +1 -1
- data/lib/deplate/fmt/xhtml10t.rb +1 -1
- data/lib/deplate/formatter-snippet.rb +1 -1
- data/lib/deplate/formatter.rb +272 -81
- data/lib/deplate/guesslanguage.rb +57 -0
- data/lib/deplate/input.rb +205 -50
- data/lib/deplate/input/deplate-headings.rb +9 -11
- data/lib/deplate/input/deplate-restricted.rb +3 -23
- data/lib/deplate/input/deplate.rb +1 -1
- data/lib/deplate/input/play.rb +208 -0
- data/lib/deplate/input/rdoc.rb +37 -15
- data/lib/deplate/input/template.rb +6 -11
- data/lib/deplate/lib/Makefile.config +53 -4
- data/lib/deplate/lib/html/parbreak +3 -0
- data/lib/deplate/lib/javascript/StepwiseNextPage.js +8 -0
- data/lib/deplate/lib/javascript/StepwiseNextPage_confirm.js +8 -0
- data/lib/deplate/lib/latex/deplate.sty +36 -0
- data/lib/deplate/lib/latex/parbreak +6 -0
- data/lib/deplate/lib/php/page-comment.inc.php +5 -5
- data/lib/deplate/lib/plain/parbreak +6 -0
- data/lib/deplate/locale/de.latin1 +87 -15
- data/lib/deplate/locale/de.latin1_data +60 -0
- data/lib/deplate/locale/en.latin1_data +46 -0
- data/lib/deplate/locale/fr.latin1_data +74 -0
- data/lib/deplate/locale/ru.koi8-r_data +63 -0
- data/lib/deplate/locale/{zh_cn.gb2312 → zh_CN.GB2312} +0 -0
- data/lib/deplate/macros.rb +106 -32
- data/lib/deplate/messages.rb +22 -8
- data/lib/deplate/metadata.rb +1 -1
- data/lib/deplate/metadata/marshal.rb +1 -1
- data/lib/deplate/metadata/xml.rb +1 -1
- data/lib/deplate/metadata/yaml.rb +1 -1
- data/lib/deplate/mod/anyword.rb +4 -4
- data/lib/deplate/mod/babelfish.rb +1 -1
- data/lib/deplate/mod/code-gvim.rb +14 -8
- data/lib/deplate/mod/code-gvim71.rb +52 -0
- data/lib/deplate/mod/code-highlight.rb +35 -19
- data/lib/deplate/mod/colored-log.rb +1 -1
- data/lib/deplate/mod/endnotes.rb +1 -1
- data/lib/deplate/mod/guesslanguage.rb +75 -0
- data/lib/deplate/mod/html-asciimath.rb +1 -1
- data/lib/deplate/mod/html-deplate-button.rb +1 -1
- data/lib/deplate/mod/html-headings-navbar.rb +1 -1
- data/lib/deplate/mod/html-highstep.rb +43 -0
- data/lib/deplate/mod/html-jsmath.rb +1 -1
- data/lib/deplate/mod/html-obfuscate-email.rb +1 -1
- data/lib/deplate/mod/html-sidebar.rb +1 -1
- data/lib/deplate/mod/iconv.rb +1 -1
- data/lib/deplate/mod/imgurl.rb +1 -1
- data/lib/deplate/mod/inlatex-compound.rb +1 -1
- data/lib/deplate/mod/koma.rb +4 -4
- data/lib/deplate/mod/{de.rb → lang-de.rb} +1 -1
- data/lib/deplate/mod/{en.rb → lang-en.rb} +1 -1
- data/lib/deplate/mod/{ru_koi8-r.rb → lang-ru-koi8-r.rb} +1 -1
- data/lib/deplate/mod/lang-ru.rb +9 -0
- data/lib/deplate/mod/{zh-cn-autospace.rb → lang-zh_CN-autospace.rb} +3 -3
- data/lib/deplate/mod/{zh-cn.rb → lang-zh_CN.rb} +8 -8
- data/lib/deplate/mod/latex-emph-table-head.rb +1 -1
- data/lib/deplate/mod/latex-styles.rb +6 -6
- data/lib/deplate/mod/latex-verbatim-small.rb +1 -1
- data/lib/deplate/mod/linkmap.rb +128 -0
- data/lib/deplate/mod/makefile.rb +23 -22
- data/lib/deplate/mod/mark-external-urls.rb +13 -7
- data/lib/deplate/mod/markup-1-warn.rb +1 -1
- data/lib/deplate/mod/markup-1.rb +1 -1
- data/lib/deplate/mod/navbar-png.rb +5 -4
- data/lib/deplate/mod/noindent.rb +1 -1
- data/lib/deplate/mod/numpara.rb +1 -1
- data/lib/deplate/mod/particle-math.rb +1 -1
- data/lib/deplate/mod/php-extra.rb +1 -1
- data/lib/deplate/mod/pstoedit.rb +1 -1
- data/lib/deplate/mod/recode.rb +1 -1
- data/lib/deplate/mod/smart-dash.rb +1 -1
- data/lib/deplate/mod/smiley.rb +1 -1
- data/lib/deplate/mod/soffice.rb +1 -1
- data/lib/deplate/mod/symbols-latin1.rb +1 -1
- data/lib/deplate/mod/symbols-od-utf-8.rb +1 -1
- data/lib/deplate/mod/symbols-plain.rb +1 -1
- data/lib/deplate/mod/symbols-sgml.rb +1 -1
- data/lib/deplate/mod/symbols-utf-8.rb +1 -1
- data/lib/deplate/mod/symbols-xml.rb +1 -1
- data/lib/deplate/mod/syntax-region-alt.rb +1 -1
- data/lib/deplate/mod/utf8.rb +1 -1
- data/lib/deplate/mod/validate-html.rb +1 -1
- data/lib/deplate/mod/xmlrpc.rb +37 -36
- data/lib/deplate/nukumi2.rb +4 -4
- data/lib/deplate/once-method.rb +1 -1
- data/lib/deplate/output.rb +12 -4
- data/lib/deplate/particles.rb +52 -22
- data/lib/deplate/regions.rb +160 -90
- data/lib/deplate/skeletons.rb +4 -3
- data/lib/deplate/structured.rb +19 -13
- data/lib/deplate/template.rb +17 -9
- data/lib/deplate/templates/html-doc.html +8 -11
- data/lib/deplate/templates/html-tabbar-right.html +1 -1
- data/lib/deplate/templates/html-tabbar-top.html +3 -3
- data/lib/deplate/variables.rb +25 -9
- data/lib/deplate/wiki-markup.rb +14 -3
- data/lib/deplate/xml.rb +3 -4
- data/lib/deplate/{zh-cn.rb → zh_CN.rb} +16 -16
- data/man/man1/deplate.1 +80 -65
- metadata +72 -48
- data/lib/deplate/mod/fr.rb +0 -46
data/lib/deplate/regions.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# regions.rb
|
|
2
|
-
# @Author: Thomas Link (
|
|
2
|
+
# @Author: Thomas Link (micathom AT gmail com)
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
|
5
5
|
# @Created: 08-Mai-2004.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-09-30.
|
|
7
|
+
# @Revision: 0.1752
|
|
8
8
|
|
|
9
9
|
# Description:
|
|
10
10
|
#
|
|
@@ -32,11 +32,59 @@ class Deplate::Region < Deplate::Element
|
|
|
32
32
|
def set_line_cont(val=true)
|
|
33
33
|
self.line_cont=val
|
|
34
34
|
end
|
|
35
|
+
|
|
36
|
+
def check_file(container, out, file, source)
|
|
37
|
+
if Dir[out].empty?
|
|
38
|
+
container.log(['Output not found', out, Dir.pwd])
|
|
39
|
+
return false
|
|
40
|
+
elsif file and source
|
|
41
|
+
if File.exist?(file)
|
|
42
|
+
accum = File.open(file) {|io| io.read}.split(/[\n\r]+/)
|
|
43
|
+
clean_strings(accum)
|
|
44
|
+
clean_strings(source)
|
|
45
|
+
if accum === source
|
|
46
|
+
container.log(['Output exists and source matches', file])
|
|
47
|
+
return true
|
|
48
|
+
else
|
|
49
|
+
container.log(['Source has changed', file, accum.size, source.size])
|
|
50
|
+
# p "DBG", accum, source
|
|
51
|
+
# puts caller[0..10].join("\n")
|
|
52
|
+
for i in 0..[accum.size, source.size].max
|
|
53
|
+
unless accum[i] === source[i]
|
|
54
|
+
container.log('%S != %S', [accum[i], source[i]])
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
else
|
|
59
|
+
container.log(['Source not found; assume that output is okay', file])
|
|
60
|
+
return true
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
container.log(['Output needs updating', file])
|
|
64
|
+
return false
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def clean_strings(strings)
|
|
68
|
+
strings.delete('')
|
|
69
|
+
strings.each {|l| l.chomp!}
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def deprecated_regnote(invoker, args, regNote, arg='@note')
|
|
73
|
+
# if !@args.has_key?(arg) or (!@args[arg] and @regNote)
|
|
74
|
+
if !args.has_key?(arg)
|
|
75
|
+
if regNote and !regNote.empty?
|
|
76
|
+
invoker.log(['Deprecated region syntax: Use argument instead', arg, regNote]
|
|
77
|
+
# , :anyway
|
|
78
|
+
)
|
|
79
|
+
# puts caller[0..10].join("\n")
|
|
80
|
+
end
|
|
81
|
+
args[arg] = regNote
|
|
82
|
+
end
|
|
83
|
+
args[arg]
|
|
84
|
+
end
|
|
85
|
+
|
|
35
86
|
end
|
|
36
87
|
|
|
37
|
-
attr_reader :regNote
|
|
38
|
-
attr_accessor :indent
|
|
39
|
-
|
|
40
88
|
def setup(region=nil)
|
|
41
89
|
if region
|
|
42
90
|
@region = region
|
|
@@ -48,10 +96,10 @@ class Deplate::Region < Deplate::Element
|
|
|
48
96
|
def finish_accum
|
|
49
97
|
if @region
|
|
50
98
|
unify_now(@region)
|
|
51
|
-
@regNote = @region.regNote ? @region.regNote.strip :
|
|
99
|
+
@regNote = @region.regNote ? @region.regNote.strip : ''
|
|
52
100
|
@accum = @region.accum
|
|
53
101
|
else
|
|
54
|
-
@regNote =
|
|
102
|
+
@regNote = ''
|
|
55
103
|
end
|
|
56
104
|
if defined?(@indent)
|
|
57
105
|
rx = /^#{@indent}/
|
|
@@ -84,40 +132,8 @@ class Deplate::Region < Deplate::Element
|
|
|
84
132
|
end
|
|
85
133
|
end
|
|
86
134
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if Dir[out].empty?
|
|
90
|
-
container.log(["Output not found", out, Dir.pwd])
|
|
91
|
-
return false
|
|
92
|
-
elsif file and source
|
|
93
|
-
if File.exist?(file)
|
|
94
|
-
accum = File.open(file) {|io| io.read}.split(/[\n\r]+/)
|
|
95
|
-
clean_strings(accum)
|
|
96
|
-
clean_strings(source)
|
|
97
|
-
if accum === source
|
|
98
|
-
container.log(["Output exists and source matches", file])
|
|
99
|
-
return true
|
|
100
|
-
else
|
|
101
|
-
container.log(["Source has changed", file, accum.size, source.size])
|
|
102
|
-
for i in 0..[accum.size, source.size].max
|
|
103
|
-
unless accum[i] === source[i]
|
|
104
|
-
container.log("%S != %S", [accum[i], source[i]])
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
else
|
|
109
|
-
container.log(["Source not found; assume that output is okay", file])
|
|
110
|
-
return true
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
container.log(["Output needs updating", file])
|
|
114
|
-
return false
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def clean_strings(strings)
|
|
118
|
-
strings.delete("")
|
|
119
|
-
strings.each {|l| l.chomp!}
|
|
120
|
-
end
|
|
135
|
+
def deprecated_regnote(arg='@note')
|
|
136
|
+
Deplate::Region.deprecated_regnote(self, @args, @regNote, arg)
|
|
121
137
|
end
|
|
122
138
|
end
|
|
123
139
|
|
|
@@ -171,14 +187,14 @@ class Deplate::Regions::UNKNOWN < Deplate::Region
|
|
|
171
187
|
end
|
|
172
188
|
|
|
173
189
|
|
|
174
|
-
class Deplate::Regions::
|
|
190
|
+
class Deplate::Regions::Var < Deplate::Region
|
|
175
191
|
register_as 'Doc'
|
|
176
192
|
register_as 'Var'
|
|
177
193
|
set_line_cont false
|
|
178
194
|
|
|
179
195
|
def finish
|
|
180
196
|
finish_accum
|
|
181
|
-
id =
|
|
197
|
+
id = deprecated_regnote('id')
|
|
182
198
|
Deplate::Command::VAR.set_variable(@deplate, id, @accum, @args, @source)
|
|
183
199
|
return nil
|
|
184
200
|
end
|
|
@@ -194,17 +210,26 @@ class Deplate::Regions::Native < Deplate::Region
|
|
|
194
210
|
def finish
|
|
195
211
|
finish_accum
|
|
196
212
|
@elt = @accum
|
|
213
|
+
if @args['template']
|
|
214
|
+
@elt = filter_template(@elt)
|
|
215
|
+
end
|
|
197
216
|
return self
|
|
198
217
|
end
|
|
199
218
|
|
|
200
219
|
def process
|
|
201
220
|
process_etc
|
|
202
|
-
@elt = @elt.join("\n")
|
|
203
221
|
return self
|
|
204
222
|
end
|
|
205
223
|
|
|
206
224
|
def format_special
|
|
207
|
-
@elt
|
|
225
|
+
case @elt
|
|
226
|
+
when Array
|
|
227
|
+
@elt.join("\n")
|
|
228
|
+
else
|
|
229
|
+
puts "TBD DBG This shouldn't be @elt.class=#{@elt.class}. Please report."
|
|
230
|
+
puts @elt
|
|
231
|
+
@elt
|
|
232
|
+
end
|
|
208
233
|
end
|
|
209
234
|
end
|
|
210
235
|
|
|
@@ -214,30 +239,39 @@ class Deplate::Regions::Write < Deplate::Regions::Native
|
|
|
214
239
|
self.label_mode = :none
|
|
215
240
|
|
|
216
241
|
def finish
|
|
217
|
-
|
|
242
|
+
unless @args['noTemplate']
|
|
243
|
+
@args['template'] = true
|
|
244
|
+
end
|
|
245
|
+
# @vars = @deplate.variables.dup
|
|
218
246
|
super
|
|
219
247
|
end
|
|
220
248
|
|
|
221
249
|
def format_special
|
|
222
|
-
@elt = Deplate::Template.new(:template => @elt,
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
Deplate::Define.let_variables(@deplate, @vars) do
|
|
226
|
-
|
|
227
|
-
end
|
|
228
|
-
@elt = @elt.join("\n")
|
|
250
|
+
# @elt = Deplate::Template.new(:template => @elt,
|
|
251
|
+
# :source => @source,
|
|
252
|
+
# :container => self)
|
|
253
|
+
# Deplate::Define.let_variables(@deplate, @vars) do
|
|
254
|
+
# @elt = @elt.fill_in(@deplate, :source => @source)
|
|
255
|
+
# end
|
|
256
|
+
# @elt = @elt.join("\n")
|
|
257
|
+
# @elt = filter_template(@elt, @vars, :container => self).join("\n")
|
|
229
258
|
fname = @args['file'] || @args['id']
|
|
230
|
-
if @deplate.is_allowed?(['w', 'W'], :logger => self)
|
|
259
|
+
if fname == '-' or @deplate.is_allowed?(['w', 'W'], :logger => self)
|
|
231
260
|
if fname
|
|
232
|
-
|
|
233
|
-
fname =
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
261
|
+
if fname == '-'
|
|
262
|
+
# fname = 2
|
|
263
|
+
puts @elt
|
|
264
|
+
else
|
|
265
|
+
unless @deplate.is_allowed?('W')
|
|
266
|
+
fname = File.basename(fname)
|
|
267
|
+
end
|
|
268
|
+
fname = Deplate::Core.get_out_fullname(fname, nil, @deplate.options)
|
|
269
|
+
sfx = @args['suffix'] || @args['sfx']
|
|
270
|
+
fname = [fname, sfx.gsub(/[^[:alnum:].]/, '_')].join('.') if sfx
|
|
271
|
+
mode = @args['append'] ? 'a' : 'w'
|
|
272
|
+
@deplate.write_file(fname, mode) do |io|
|
|
273
|
+
io.puts(@elt)
|
|
274
|
+
end
|
|
241
275
|
end
|
|
242
276
|
else
|
|
243
277
|
log(['No filename'], :error)
|
|
@@ -271,41 +305,41 @@ class Deplate::Regions::Code < Deplate::Regions::Native
|
|
|
271
305
|
|
|
272
306
|
def setup(region)
|
|
273
307
|
super
|
|
274
|
-
@syntax = @deplate.variables[
|
|
275
|
-
@style = @deplate.variables[
|
|
308
|
+
@syntax = @deplate.variables['codeSyntax']
|
|
309
|
+
@style = @deplate.variables['codeStyle']
|
|
276
310
|
end
|
|
277
311
|
|
|
278
312
|
def process
|
|
279
313
|
process_etc
|
|
280
314
|
text = @elt.join("\n")
|
|
281
|
-
if (s = @args[
|
|
315
|
+
if (s = @args['syntax'])
|
|
282
316
|
@syntax = s
|
|
283
317
|
end
|
|
284
|
-
if (s = @args[
|
|
318
|
+
if (s = @args['style'])
|
|
285
319
|
@style = s
|
|
286
320
|
end
|
|
287
321
|
if @style
|
|
288
|
-
@style = Deplate::Core.
|
|
322
|
+
@style = Deplate::Core.clean_name(@style)
|
|
289
323
|
@deplate.call_methods_matching(@deplate.formatter, /^hook_code_process_/, @style)
|
|
290
324
|
end
|
|
291
325
|
if @syntax
|
|
292
326
|
e = nil
|
|
293
327
|
@deplate.in_working_dir do
|
|
294
328
|
fmt_name = @deplate.formatter.formatter_name
|
|
295
|
-
id = @args[
|
|
329
|
+
id = @args['id']
|
|
296
330
|
if id
|
|
297
|
-
id.gsub!(/\W/,
|
|
331
|
+
id.gsub!(/\W/, '00')
|
|
298
332
|
fcode = @deplate.auxiliary_filename("code_#{id}")
|
|
299
333
|
fout = @deplate.auxiliary_filename("code_#{id}.#{fmt_name}")
|
|
300
334
|
else
|
|
301
|
-
log(
|
|
335
|
+
log('No ID given', :anyway)
|
|
302
336
|
@@code_idx += 1
|
|
303
337
|
fcode = @deplate.auxiliary_filename(@deplate.auxiliary_auto_filename('code', @@code_idx, @elt, @syntax))
|
|
304
338
|
fout = @deplate.auxiliary_filename(@deplate.auxiliary_auto_filename('code', @@code_idx, @elt, fmt_name))
|
|
305
339
|
end
|
|
306
340
|
if Deplate::Region.check_file(self, fout, fcode, @elt)
|
|
307
341
|
log(["Files exist! Using", fout], :anyway)
|
|
308
|
-
File.open(fout) {|io| @elt = io.
|
|
342
|
+
File.open(fout) {|io| @elt = io.readlines.collect {|l| l.chomp}}
|
|
309
343
|
return self
|
|
310
344
|
else
|
|
311
345
|
begin
|
|
@@ -314,6 +348,7 @@ class Deplate::Regions::Code < Deplate::Regions::Native
|
|
|
314
348
|
specialized_highlighter.each do |fmt, agent|
|
|
315
349
|
if @deplate.formatter.matches?(fmt)
|
|
316
350
|
e = send(agent, @syntax, @style, text)
|
|
351
|
+
# p "DBG Code 1 #{e.class}"
|
|
317
352
|
break if e
|
|
318
353
|
end
|
|
319
354
|
end
|
|
@@ -321,6 +356,7 @@ class Deplate::Regions::Code < Deplate::Regions::Native
|
|
|
321
356
|
unless e
|
|
322
357
|
agent = self.class.general_highlighter[fmt_name]
|
|
323
358
|
e = send(agent, @syntax, @style, text) if agent
|
|
359
|
+
# p "DBG Code 2 #{e.class}"
|
|
324
360
|
end
|
|
325
361
|
rescue StandardError => e
|
|
326
362
|
log("#Code: #{e}", :error)
|
|
@@ -332,13 +368,21 @@ class Deplate::Regions::Code < Deplate::Regions::Native
|
|
|
332
368
|
end
|
|
333
369
|
end
|
|
334
370
|
if e
|
|
335
|
-
|
|
371
|
+
case e
|
|
372
|
+
when Array
|
|
373
|
+
@elt = e
|
|
374
|
+
when String
|
|
375
|
+
p "DBG e should be an Array. Please report."
|
|
376
|
+
@elt = e.split("\n")
|
|
377
|
+
else
|
|
378
|
+
raise "DBG Unknown class for e: #{e.class}. Please report."
|
|
379
|
+
end
|
|
336
380
|
return self
|
|
337
381
|
end
|
|
338
382
|
else
|
|
339
383
|
log("Code: No syntax defined!", :error)
|
|
340
384
|
end
|
|
341
|
-
return Deplate::Regions::Verbatim.new(@deplate, @source,
|
|
385
|
+
return Deplate::Regions::Verbatim.new(@deplate, @source, @elt, @match, self).finish.process
|
|
342
386
|
end
|
|
343
387
|
end
|
|
344
388
|
|
|
@@ -371,7 +415,7 @@ class Deplate::Regions::Inlatex < Deplate::Region
|
|
|
371
415
|
|
|
372
416
|
def register_caption
|
|
373
417
|
if @args["inline"]
|
|
374
|
-
log("
|
|
418
|
+
log("Cannot attach caption to a LaTeX fragment marked as inline", :error)
|
|
375
419
|
elsif @content_type == "table"
|
|
376
420
|
register_table
|
|
377
421
|
else
|
|
@@ -530,6 +574,7 @@ module Deplate::Regions::Img_R
|
|
|
530
574
|
raise
|
|
531
575
|
end
|
|
532
576
|
post << "dev.off()"
|
|
577
|
+
post << "q(runLast=FALSE)"
|
|
533
578
|
return (pre + accum + post).flatten
|
|
534
579
|
end
|
|
535
580
|
|
|
@@ -564,7 +609,7 @@ class Deplate::Regions::Footnote < Deplate::Region::SecondOrder
|
|
|
564
609
|
def finish
|
|
565
610
|
rv = super
|
|
566
611
|
@prototype = Deplate::Element
|
|
567
|
-
id = (
|
|
612
|
+
id = deprecated_regnote('id')
|
|
568
613
|
if id
|
|
569
614
|
@deplate.footnotes[id] = rv
|
|
570
615
|
# @deplate.register_metadata(src,
|
|
@@ -582,22 +627,27 @@ end
|
|
|
582
627
|
|
|
583
628
|
class Deplate::Regions::Foreach < Deplate::Region
|
|
584
629
|
register_as 'Foreach'
|
|
630
|
+
register_as 'For'
|
|
585
631
|
self.label_mode = :once
|
|
586
632
|
|
|
587
633
|
def finish
|
|
588
634
|
finish_accum
|
|
589
|
-
@id = @args['@id']
|
|
635
|
+
@id = Deplate::Core.split_list(@args['@id'], ',', '; ', @source)
|
|
590
636
|
unless @id
|
|
591
637
|
log('No ID given', :error)
|
|
592
638
|
return nil
|
|
593
639
|
end
|
|
594
|
-
doc = @args['doc']
|
|
640
|
+
doc = @args['var'] || @args['doc']
|
|
595
641
|
if doc
|
|
596
642
|
@list = @deplate.variables[doc]
|
|
597
643
|
else
|
|
598
|
-
@list =
|
|
644
|
+
@list = deprecated_regnote('each')
|
|
599
645
|
end
|
|
600
|
-
|
|
646
|
+
case @list
|
|
647
|
+
when nil
|
|
648
|
+
log('Missing arguments', :error)
|
|
649
|
+
return nil
|
|
650
|
+
when Array
|
|
601
651
|
@list = @list.flatten
|
|
602
652
|
else
|
|
603
653
|
rx = @args['rx']
|
|
@@ -613,6 +663,13 @@ class Deplate::Regions::Foreach < Deplate::Region
|
|
|
613
663
|
end
|
|
614
664
|
end
|
|
615
665
|
end
|
|
666
|
+
use_template = !(@args['noTemplate'] || deplate.variables['legacyFor1'])
|
|
667
|
+
if use_template
|
|
668
|
+
tmpl = Deplate::Template.new(:master => @deplate,
|
|
669
|
+
:template => @accum,
|
|
670
|
+
:source => @source,
|
|
671
|
+
:container => self)
|
|
672
|
+
end
|
|
616
673
|
@foreach = []
|
|
617
674
|
while !@list.empty?
|
|
618
675
|
ids = {}
|
|
@@ -620,7 +677,12 @@ class Deplate::Regions::Foreach < Deplate::Region
|
|
|
620
677
|
ids[i] = @list.shift
|
|
621
678
|
end
|
|
622
679
|
Deplate::Define.let_variables(@deplate, ids) do
|
|
623
|
-
|
|
680
|
+
if use_template
|
|
681
|
+
body = tmpl.fill_in(deplate, :source => @source)
|
|
682
|
+
else
|
|
683
|
+
body = @accum
|
|
684
|
+
end
|
|
685
|
+
acc = @deplate.parsed_array_from_strings(body, 1 + @source.begin, @source.file)
|
|
624
686
|
@prototype ||= acc[0]
|
|
625
687
|
@foreach << [ids, acc]
|
|
626
688
|
end
|
|
@@ -739,6 +801,13 @@ class Deplate::Regions::Quote < Deplate::Region::SecondOrder
|
|
|
739
801
|
end
|
|
740
802
|
|
|
741
803
|
|
|
804
|
+
class Deplate::Regions::Region < Deplate::Region::SecondOrder
|
|
805
|
+
register_as 'Region'
|
|
806
|
+
register_as 'Block'
|
|
807
|
+
set_formatter :format_region, true
|
|
808
|
+
end
|
|
809
|
+
|
|
810
|
+
|
|
742
811
|
class Deplate::Regions::R < Deplate::Region
|
|
743
812
|
register_as 'R'
|
|
744
813
|
|
|
@@ -958,6 +1027,7 @@ class Deplate::Regions::R < Deplate::Region
|
|
|
958
1027
|
log(["Running R", d, r, out])
|
|
959
1028
|
begin
|
|
960
1029
|
@accum.unshift(%{deplate.fmt <- "#{@deplate.formatter.formatter_name}"})
|
|
1030
|
+
@accum << %{q(runLast=FALSE)}
|
|
961
1031
|
if Deplate::Region.check_file(self, out, r, @accum)
|
|
962
1032
|
log(["Files exist! Using", out], :anyway)
|
|
963
1033
|
else
|
|
@@ -974,7 +1044,7 @@ class Deplate::Regions::R < Deplate::Region
|
|
|
974
1044
|
@accum = File.open(out) {|io| io.read}.split(/[\n\r]+/)
|
|
975
1045
|
skip = @args["skip"]
|
|
976
1046
|
if skip
|
|
977
|
-
head, tail =
|
|
1047
|
+
head, tail = Deplate::Core.split_list(skip, nil, nil, @source).collect {|n| n.to_i}
|
|
978
1048
|
@accum = @accum[(head || 0) .. (@accum.size - tail - 1 || -1)] || []
|
|
979
1049
|
end
|
|
980
1050
|
rv = true
|
|
@@ -1003,12 +1073,12 @@ class Deplate::Regions::Ruby < Deplate::Region
|
|
|
1003
1073
|
def finish
|
|
1004
1074
|
finish_accum
|
|
1005
1075
|
@accum = [@deplate.eval_ruby(self, @args, @accum.join("\n")).to_s]
|
|
1006
|
-
if @args[
|
|
1076
|
+
if @args['verb']
|
|
1007
1077
|
return Deplate::Regions::Verbatim.new(@deplate, @source, @accum, @match, self).finish
|
|
1008
|
-
elsif @args[
|
|
1009
|
-
file = @args[
|
|
1010
|
-
return Deplate::Command::IMG.new(@deplate, @source, file, nil, {},
|
|
1011
|
-
elsif @args[
|
|
1078
|
+
elsif @args['img'] or @args['image']
|
|
1079
|
+
file = @args['img'] || @args['image']
|
|
1080
|
+
return Deplate::Command::IMG.new(@deplate, @source, file, nil, {}, 'IMG').finish
|
|
1081
|
+
elsif @args['native']
|
|
1012
1082
|
return Deplate::Regions::Native.new(@deplate, @source, @accum, @match, self).finish
|
|
1013
1083
|
else
|
|
1014
1084
|
acc = []
|
|
@@ -1036,7 +1106,7 @@ class Deplate::Regions::Clip < Deplate::Region::SecondOrder
|
|
|
1036
1106
|
|
|
1037
1107
|
def finish
|
|
1038
1108
|
finish_accum
|
|
1039
|
-
id =
|
|
1109
|
+
id = deprecated_regnote('id')
|
|
1040
1110
|
@doc_type = :array
|
|
1041
1111
|
@processed = false
|
|
1042
1112
|
@elt = @deplate.parsed_array_from_strings(@accum, @source.begin, @source.file)
|
|
@@ -1060,7 +1130,7 @@ class Deplate::Regions::Clip < Deplate::Region::SecondOrder
|
|
|
1060
1130
|
end
|
|
1061
1131
|
|
|
1062
1132
|
def log(*args)
|
|
1063
|
-
if @invoker
|
|
1133
|
+
if defined?(@invoker) and @invoker
|
|
1064
1134
|
@invoker.log(*args)
|
|
1065
1135
|
else
|
|
1066
1136
|
super
|