deplate 0.8 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -1,7 +1,10 @@
|
|
1
1
|
@import url(deplate.css);
|
2
2
|
|
3
3
|
body {
|
4
|
-
background-color: #d9e0f0;
|
4
|
+
/* background-color: #d9e0f0; */
|
5
|
+
background-color: #e4e8f0;
|
6
|
+
background-image: url(grad_blue.jpg);
|
7
|
+
background-repeat: repeat-x;
|
5
8
|
}
|
6
9
|
|
7
10
|
#tabFrame {
|
@@ -9,17 +12,18 @@ body {
|
|
9
12
|
top: 0;
|
10
13
|
left: 10%;
|
11
14
|
text-align: left;
|
12
|
-
width:
|
15
|
+
width: 80%;
|
13
16
|
}
|
14
17
|
#tabBar {
|
15
18
|
padding: 0;
|
16
19
|
border: 0;
|
17
20
|
margin: 10px 0 0 0;
|
18
|
-
background-color: #d9e0f0;
|
21
|
+
/* background-color: #d9e0f0; */
|
22
|
+
background-color: transparent;
|
19
23
|
}
|
20
24
|
#tabBodyFrame {
|
21
25
|
/* text-align: left; */
|
22
|
-
width:
|
26
|
+
width: 100%;
|
23
27
|
padding: 0;
|
24
28
|
}
|
25
29
|
#tabBody {
|
@@ -28,7 +32,11 @@ body {
|
|
28
32
|
vertical-align: top;
|
29
33
|
margin-top: 0;
|
30
34
|
padding: 10px;
|
31
|
-
border: 1px dashed #cae0ea;
|
35
|
+
/* border: 1px dashed #cae0ea; */
|
36
|
+
border: 1px solid #cae0ea;
|
37
|
+
border-bottom-left-radius: 15px;
|
38
|
+
border-bottom-right-radius: 15px;
|
39
|
+
-moz-border-radius: 0 0 15px 15px;
|
32
40
|
}
|
33
41
|
|
34
42
|
table.tabBarTop {
|
@@ -49,18 +57,29 @@ tr.tabBarTop {
|
|
49
57
|
}
|
50
58
|
td.tabBarTopActive {
|
51
59
|
margin: 0;
|
52
|
-
border-top: 1px dashed #cae0ea;
|
53
|
-
border-left: 1px dashed #cae0ea;
|
54
|
-
border-right: 1px dashed #cae0ea;
|
60
|
+
/* border-top: 1px dashed #cae0ea; */
|
61
|
+
/* border-left: 1px dashed #cae0ea; */
|
62
|
+
/* border-right: 1px dashed #cae0ea; */
|
63
|
+
border-top: 1px solid #cae0ea;
|
64
|
+
border-left: 1px solid #cae0ea;
|
65
|
+
border-right: 1px solid #cae0ea;
|
55
66
|
border-bottom: 0;
|
56
67
|
background-color: #ffffff;
|
57
68
|
text-align: center;
|
69
|
+
/* -moz-border-radius: 15px 15px 0 0; */
|
58
70
|
}
|
59
71
|
td.tabBarTopInactive {
|
60
72
|
margin: 0;
|
61
|
-
border-bottom: 1px dashed #cae0ea;
|
73
|
+
/* border-bottom: 1px dashed #cae0ea; */
|
74
|
+
border-bottom: 1px solid #cae0ea;
|
62
75
|
background-color: #f0f0f0;
|
63
76
|
text-align: center;
|
77
|
+
/* -moz-border-radius: 15px 15px 0 0; */
|
78
|
+
}
|
79
|
+
|
80
|
+
tr.tabBarTopAbout {
|
81
|
+
}
|
82
|
+
td.tabBarTopAbout {
|
64
83
|
}
|
65
84
|
|
66
85
|
div.pageicons {
|
data/lib/deplate/define.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# define.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: 19-Okt-2004.
|
6
|
-
# @Last Change:
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2007-05-20.
|
7
|
+
# @Revision: 0.546
|
8
8
|
|
9
9
|
require 'deplate/commands'
|
10
10
|
require 'deplate/macros'
|
@@ -88,20 +88,46 @@ class Deplate::Define < Deplate::Region
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
+
module Deplate::Define::TemplateExpander
|
92
|
+
def use_template(template=@template, oargs={})
|
93
|
+
# deplate = @deplate || oargs[:deplate]
|
94
|
+
# args = @args || oargs[:args]
|
95
|
+
# source = @source || oargs[:source]
|
96
|
+
deplate = oargs[:deplate] || @deplate
|
97
|
+
args = oargs[:args] || @args
|
98
|
+
source = oargs[:source] || @source
|
99
|
+
if args['noTemplate'] or deplate.variables['legacyDefine1']
|
100
|
+
template
|
101
|
+
else
|
102
|
+
tmpl = Deplate::Template.new(:master => deplate,
|
103
|
+
:template => template,
|
104
|
+
:source => source,
|
105
|
+
:container => self)
|
106
|
+
rv = nil
|
107
|
+
Deplate::Define.let_variables(deplate, args) do
|
108
|
+
rv = tmpl.fill_in(deplate, :source => source)
|
109
|
+
end
|
110
|
+
rv
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
91
114
|
|
92
115
|
# class Deplate::Define::Region < Deplate::Region::SecondOrder
|
93
116
|
class Deplate::Define::Region < Deplate::Region
|
117
|
+
include Deplate::Define::TemplateExpander
|
118
|
+
|
94
119
|
def finish
|
95
120
|
finish_accum
|
96
121
|
setup_template
|
97
122
|
@args['@body'] = @accum.join("\n")
|
98
|
-
|
123
|
+
deprecated_regnote
|
99
124
|
Deplate::Define.check_arguments(@mandatory, @args, @source)
|
100
125
|
@expected = Deplate::Element
|
101
126
|
@elt = []
|
127
|
+
tpl = use_template
|
102
128
|
Deplate::Define.let_variables(@deplate, @args) do
|
103
129
|
# p "DBG DefineRegion: #{@deplate.options.counters.inspect}"
|
104
|
-
@elt = @deplate.parsed_array_from_strings(
|
130
|
+
@elt = @deplate.parsed_array_from_strings(tpl, @source.begin, @source.file)
|
105
131
|
end
|
106
132
|
unless @elt.empty?
|
107
133
|
@elt.first.put_label(@label)
|
@@ -111,12 +137,12 @@ class Deplate::Define::Region < Deplate::Region
|
|
111
137
|
end
|
112
138
|
|
113
139
|
class Deplate::Regions::DefRegion < Deplate::Define
|
114
|
-
|
115
|
-
|
116
|
-
|
140
|
+
register_as 'DefRegion'
|
141
|
+
register_as 'DefineRegion'
|
142
|
+
register_as 'Defr'
|
117
143
|
|
118
144
|
def define
|
119
|
-
id =
|
145
|
+
id = deprecated_regnote('id')
|
120
146
|
if valid_id?(id)
|
121
147
|
# if @args['lineCont'] == false
|
122
148
|
line_cont = 'set_line_cont false'
|
@@ -163,15 +189,15 @@ class Deplate::Define::Element < Deplate::Element
|
|
163
189
|
end
|
164
190
|
|
165
191
|
class Deplate::Regions::DefElement < Deplate::Define
|
166
|
-
|
167
|
-
|
168
|
-
|
192
|
+
register_as 'DefElement'
|
193
|
+
register_as 'DefineElement'
|
194
|
+
register_as 'Defe'
|
169
195
|
@@def_element_counter = 0
|
170
196
|
|
171
197
|
set_line_cont false
|
172
198
|
|
173
199
|
def define
|
174
|
-
rx =
|
200
|
+
rx = deprecated_regnote('rx')
|
175
201
|
if rx
|
176
202
|
@@def_element_counter += 1
|
177
203
|
# template = @accum.join("\n").gsub(/\'/, "\\\\\'")
|
@@ -223,7 +249,7 @@ class Deplate::Regions::DefParticle < Deplate::Define
|
|
223
249
|
@@def_particle_counter = 0
|
224
250
|
|
225
251
|
def define
|
226
|
-
rs =
|
252
|
+
rs = deprecated_regnote('rx')
|
227
253
|
if rs
|
228
254
|
# template = @accum.join("\n").gsub(/\'/, "\\\\\'")
|
229
255
|
template = @accum.join("\n")
|
@@ -245,13 +271,20 @@ end
|
|
245
271
|
|
246
272
|
class Deplate::Define::Command < Deplate::Command
|
247
273
|
class << self
|
274
|
+
include Deplate::Define::TemplateExpander
|
275
|
+
|
248
276
|
def accumulate(source, array, deplate, text, match, args, cmd)
|
249
277
|
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
250
278
|
template, mandatory = setup_template(text, deplate)
|
251
279
|
args['@body'] = text
|
252
280
|
Deplate::Define.check_arguments(mandatory, args, source)
|
281
|
+
tpl = use_template(template,
|
282
|
+
:deplate => deplate,
|
283
|
+
:args => args,
|
284
|
+
:source => source
|
285
|
+
)
|
253
286
|
Deplate::Define.let_variables(deplate, args) do
|
254
|
-
deplate.include_stringarray(
|
287
|
+
deplate.include_stringarray(tpl, array, source.begin, source.file)
|
255
288
|
end
|
256
289
|
end
|
257
290
|
end
|
@@ -259,13 +292,13 @@ end
|
|
259
292
|
|
260
293
|
|
261
294
|
class Deplate::Regions::DefCommand < Deplate::Define
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
295
|
+
register_as 'DefCommand'
|
296
|
+
register_as 'DefCmd'
|
297
|
+
register_as 'DefineCommand'
|
298
|
+
register_as 'Defc'
|
266
299
|
|
267
300
|
def define
|
268
|
-
id =
|
301
|
+
id = deprecated_regnote('id')
|
269
302
|
if valid_id?(id)
|
270
303
|
body = <<-EOR
|
271
304
|
class << self
|
@@ -301,11 +334,11 @@ end
|
|
301
334
|
|
302
335
|
|
303
336
|
class Deplate::Regions::DefMacro < Deplate::Define
|
304
|
-
|
305
|
-
|
306
|
-
|
337
|
+
register_as 'DefMacro'
|
338
|
+
register_as 'DefineMacro'
|
339
|
+
register_as 'Defm'
|
307
340
|
def define
|
308
|
-
id =
|
341
|
+
id = deprecated_regnote('id')
|
309
342
|
if valid_id?(id)
|
310
343
|
body = <<-EOR
|
311
344
|
def setup_template(text)
|
@@ -325,7 +358,7 @@ end
|
|
325
358
|
|
326
359
|
class Deplate::Regions::Native
|
327
360
|
def expand_template
|
328
|
-
|
361
|
+
deprecated_regnote
|
329
362
|
@args['@body'] = @accum.join("\n")
|
330
363
|
tmpl = Deplate::Template.new(:master => @deplate,
|
331
364
|
:template => @template,
|
@@ -341,11 +374,11 @@ end
|
|
341
374
|
|
342
375
|
|
343
376
|
class Deplate::Regions::DefRegionN < Deplate::Define
|
344
|
-
|
345
|
-
|
346
|
-
|
377
|
+
register_as 'DefRegionN'
|
378
|
+
register_as 'DefineRegionN'
|
379
|
+
register_as 'Defrn'
|
347
380
|
def define
|
348
|
-
id =
|
381
|
+
id = deprecated_regnote('id')
|
349
382
|
if valid_id?(id)
|
350
383
|
body = <<-EOR
|
351
384
|
def finish
|
@@ -385,12 +418,12 @@ end
|
|
385
418
|
|
386
419
|
|
387
420
|
class Deplate::Regions::DefCommandN < Deplate::Define
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
421
|
+
register_as 'DefCommandN'
|
422
|
+
register_as 'DefCmdN'
|
423
|
+
register_as 'DefineCommandN'
|
424
|
+
register_as 'Defcn'
|
392
425
|
def define
|
393
|
-
id =
|
426
|
+
id = deprecated_regnote('id')
|
394
427
|
if valid_id?(id)
|
395
428
|
body = <<-EOR
|
396
429
|
def finish
|
@@ -424,11 +457,11 @@ end
|
|
424
457
|
|
425
458
|
|
426
459
|
class Deplate::Regions::DefMacroN < Deplate::Define
|
427
|
-
|
428
|
-
|
429
|
-
|
460
|
+
register_as 'DefMacroN'
|
461
|
+
register_as 'DefineMacroN'
|
462
|
+
register_as 'Defmn'
|
430
463
|
def define
|
431
|
-
id =
|
464
|
+
id = deprecated_regnote('id')
|
432
465
|
if valid_id?(id)
|
433
466
|
body = <<-EOR
|
434
467
|
def setup_template
|
@@ -1,10 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# deplate-string.rb
|
3
|
-
# @Author: Thomas Link (
|
3
|
+
# @Author: Thomas Link (micathom AT gmail com)
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
5
|
# @Created: 31-Dez-2005.
|
6
|
-
# @Last Change:
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 18-Aug-2006.
|
7
|
+
# @Revision: 0.40
|
8
8
|
|
9
9
|
require 'deplate/converter'
|
10
10
|
|
data/lib/deplate/docbook.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# docbook.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: 17-M�r-2004.
|
6
|
-
# @Last Change:
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2007-09-30.
|
7
|
+
# @Revision: 0.2748
|
8
8
|
|
9
9
|
require 'deplate/xml'
|
10
10
|
|
@@ -12,7 +12,6 @@ require 'deplate/xml'
|
|
12
12
|
|
13
13
|
class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
14
14
|
def initialize(deplate, args)
|
15
|
-
@consumed_ids = []
|
16
15
|
@sgml = false
|
17
16
|
super
|
18
17
|
end
|
@@ -34,11 +33,11 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
34
33
|
end
|
35
34
|
id = opts['id']
|
36
35
|
if id
|
37
|
-
if
|
36
|
+
if consumed_ids.include?(id)
|
38
37
|
opts = opts.dup
|
39
38
|
opts.delete('id')
|
40
39
|
else
|
41
|
-
|
40
|
+
consumed_ids << id
|
42
41
|
end
|
43
42
|
opts['xreflabel'] ||= args[:level_as_string]
|
44
43
|
end
|
@@ -195,8 +194,9 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
195
194
|
if text
|
196
195
|
acc = []
|
197
196
|
for au in Deplate::Core.authors_split(text)
|
198
|
-
author = Deplate::Names.
|
199
|
-
|
197
|
+
if (author = Deplate::Names.name_match_c(au))
|
198
|
+
acc << formatted_inline(type, formatted_inline('surname', author[:surname]))
|
199
|
+
elsif (author = Deplate::Names.name_match_sf(au) || Deplate::Names.name_match_fs(au))
|
200
200
|
surname = formatted_inline('surname', author[:surname])
|
201
201
|
firstname = formatted_inline('firstname', author[:firstname])
|
202
202
|
acc << formatted_inline(type, surname + firstname)
|
@@ -522,7 +522,7 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
522
522
|
|
523
523
|
def get_image(args, file, fnroot, inline=false)
|
524
524
|
if file =~ Deplate::HyperLink::Url.rx
|
525
|
-
Deplate::Core.log([%{
|
525
|
+
Deplate::Core.log([%{Cannot include remote images in current document}, file], :error)
|
526
526
|
file = File.basename(file)
|
527
527
|
end
|
528
528
|
o = {}
|
data/lib/deplate/elements.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# elements.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: 26-M�r-2004.
|
6
|
-
# @Last Change:
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2007-09-30.
|
7
|
+
# @Revision: 0.4497
|
8
8
|
|
9
9
|
require "deplate/abstract-class"
|
10
10
|
|
@@ -83,17 +83,21 @@ class Deplate::Element < Deplate::BaseElement
|
|
83
83
|
|
84
84
|
def do_accumulate(src, array, deplate, text, *args)
|
85
85
|
run_accumulation_hooks(@@accumulate_pre[self], src, array, deplate, text, *args)
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
e
|
95
|
-
|
96
|
-
|
86
|
+
begin
|
87
|
+
top = array.last
|
88
|
+
accumulate(src, array, deplate, text, *args)
|
89
|
+
indentation = text.gsub(/^(\s*).*$/, '\\1')
|
90
|
+
shiftwidth = deplate.variables['tabWidth']
|
91
|
+
shiftwidth = shiftwidth ? shiftwidth.to_i : 4
|
92
|
+
indent_level = indentation.size / shiftwidth
|
93
|
+
i = -1
|
94
|
+
while ((e = array[i]) and (!top or e != top))
|
95
|
+
e.indentation = indentation
|
96
|
+
e.indentation_level = indent_level
|
97
|
+
i -= 1
|
98
|
+
end
|
99
|
+
rescue Exception => e
|
100
|
+
Deplate::Core.log(['Error when running command', e], :error, src)
|
97
101
|
end
|
98
102
|
run_accumulation_hooks(@@accumulate_post[self], src, array, deplate, text, *args)
|
99
103
|
end
|
@@ -155,6 +159,7 @@ class Deplate::Element < Deplate::BaseElement
|
|
155
159
|
|
156
160
|
@level = get_level if respond_to?(:get_level)
|
157
161
|
@accum = respond_to?(:get_text) ? [get_text] : []
|
162
|
+
@accum.compact!
|
158
163
|
|
159
164
|
set_instance_top
|
160
165
|
|
@@ -198,8 +203,8 @@ class Deplate::Element < Deplate::BaseElement
|
|
198
203
|
return @collapse && other.collapse && self.class == other.class
|
199
204
|
end
|
200
205
|
|
201
|
-
def drop?
|
202
|
-
return @collapse == :drop
|
206
|
+
def drop?(filter=nil)
|
207
|
+
return @collapse == :drop || (filter && exclude?(filter))
|
203
208
|
end
|
204
209
|
|
205
210
|
def unify(other)
|
@@ -222,7 +227,7 @@ class Deplate::Element < Deplate::BaseElement
|
|
222
227
|
def_abstract :push_match
|
223
228
|
|
224
229
|
def to_be_continued?(line, klass, match)
|
225
|
-
klass.nil?
|
230
|
+
@multiliner && (klass == @deplate.input.comment_class || klass.nil?)
|
226
231
|
end
|
227
232
|
|
228
233
|
# compile the accumulated lines in @accum & put the result into @elt
|
@@ -381,7 +386,7 @@ class Deplate::Element < Deplate::BaseElement
|
|
381
386
|
end
|
382
387
|
|
383
388
|
def register_caption
|
384
|
-
# log(["
|
389
|
+
# log(["Cannot attach caption to", self.class.name], :error)
|
385
390
|
end
|
386
391
|
|
387
392
|
def set_caption(captiondef, quiet=false)
|
@@ -418,8 +423,8 @@ class Deplate::Element < Deplate::BaseElement
|
|
418
423
|
# nn = @deplate.get_numbering_mode(en, 2)
|
419
424
|
# nn = nil if nn == 0
|
420
425
|
cn = @deplate.options.listings.get_prop(list, 'counter') || list
|
421
|
-
# self.level_as_string = @deplate.options.counters.increase(cn, :to_s => true, :level => nn)
|
422
|
-
self.level_as_string = @deplate.options.counters.increase(cn, :to_s => true)
|
426
|
+
# self.level_as_string = @deplate.options.counters.increase(cn, :container => self, :to_s => true, :level => nn)
|
427
|
+
self.level_as_string = @deplate.options.counters.increase(cn, :container => self, :to_s => true)
|
423
428
|
prefix = @deplate.options.listings.get_prop(list, 'prefix') || list
|
424
429
|
label = @deplate.elt_label(prefix, level_as_string)
|
425
430
|
@label << label
|
@@ -432,11 +437,13 @@ class Deplate::Element < Deplate::BaseElement
|
|
432
437
|
)
|
433
438
|
end
|
434
439
|
|
435
|
-
protected
|
436
440
|
def process_etc
|
437
441
|
if !@caption and @args['caption']
|
438
|
-
|
439
|
-
|
442
|
+
# puts caller[0..10].join("\n")
|
443
|
+
# log(['DEBUG: Too late: Add caption', @args['caption']], :error)
|
444
|
+
log(['Add caption', @args['caption']])
|
445
|
+
# caption = @deplate.parse(self, @args['caption'])
|
446
|
+
caption = @args['caption']
|
440
447
|
set_caption(Deplate::CaptionDef.new(caption, @args, @source))
|
441
448
|
end
|
442
449
|
if defined?(@caption) && @caption
|
@@ -459,7 +466,7 @@ class Deplate::Element < Deplate::BaseElement
|
|
459
466
|
l.compact!
|
460
467
|
l.uniq!
|
461
468
|
put_label(l, true)
|
462
|
-
|
469
|
+
unify_args(other.args)
|
463
470
|
# p "DBG", self.class, other.class, @args.keys, other.args.keys
|
464
471
|
@level ||= other.level
|
465
472
|
@source.begin ||= other.source.begin
|
@@ -479,7 +486,19 @@ class Deplate::Element < Deplate::BaseElement
|
|
479
486
|
update_styles(other.styles)
|
480
487
|
end
|
481
488
|
end
|
482
|
-
|
489
|
+
|
490
|
+
def unify_args(args)
|
491
|
+
@args.update(args) do |k, o, n|
|
492
|
+
case k
|
493
|
+
when 'tag'
|
494
|
+
[o, n].join(',')
|
495
|
+
else
|
496
|
+
n
|
497
|
+
end
|
498
|
+
end
|
499
|
+
update_args
|
500
|
+
end
|
501
|
+
|
483
502
|
def unify_elt(other)
|
484
503
|
if @elt.nil?
|
485
504
|
@elt = other.elt
|
@@ -510,7 +529,7 @@ class Deplate::Element < Deplate::BaseElement
|
|
510
529
|
pre = m.pre_match
|
511
530
|
text = m.post_match
|
512
531
|
add = tabwidth - pre.size % tabwidth
|
513
|
-
accum << pre + (
|
532
|
+
accum << pre + (' ' * add)
|
514
533
|
else
|
515
534
|
return accum.join + text
|
516
535
|
end
|
@@ -523,8 +542,10 @@ class Deplate::Element < Deplate::BaseElement
|
|
523
542
|
if @elt
|
524
543
|
@elt = (@elt.collect(&block)).join
|
525
544
|
else
|
526
|
-
|
527
|
-
|
545
|
+
# p "DBG", @accum
|
546
|
+
# puts caller.join("\n")
|
547
|
+
log(['Internal error: No @elt', self.class], :error)
|
548
|
+
@elt = ''
|
528
549
|
end
|
529
550
|
end
|
530
551
|
alias process_elements process_particles
|
@@ -539,19 +560,68 @@ class Deplate::Element < Deplate::BaseElement
|
|
539
560
|
end
|
540
561
|
|
541
562
|
|
542
|
-
|
563
|
+
# Don't register Paragraph in @@elements -- it's assigned if nothing else
|
564
|
+
# matches
|
565
|
+
class Deplate::Element::Paragraph < Deplate::Element
|
566
|
+
set_formatter :format_paragraph
|
567
|
+
set_rx(/^([[:blank:]]*)(.+)[[:blank:]]*$/)
|
568
|
+
def_get :level, lambda {get_indent(@match[1]).size}
|
569
|
+
def_get :text, lambda {@deplate.options.keep_whitespace ? @match[0] : @match[2]}
|
570
|
+
|
571
|
+
class << self
|
572
|
+
def from_text(deplate, src, text)
|
573
|
+
m = self.rx.match(text)
|
574
|
+
self.new(deplate, src, text, m)
|
575
|
+
end
|
576
|
+
end
|
577
|
+
|
578
|
+
def setup
|
579
|
+
@multiliner = true
|
580
|
+
end
|
581
|
+
end
|
582
|
+
|
583
|
+
|
584
|
+
class Deplate::Element::Comment < Deplate::Element::Paragraph
|
543
585
|
register_element
|
544
|
-
set_rx(/^\s*(%+)[[:blank:]]*(.*)$/)
|
545
|
-
|
586
|
+
# set_rx(/^\s*(%+)[[:blank:]]*(.*)$/)
|
587
|
+
set_rx(/^\s*(%+)\s*(.*)$/)
|
588
|
+
# def_get :level, lambda {@match[1].size}
|
589
|
+
def_get :level, lambda {get_marker.size}
|
590
|
+
def_get :marker, 1
|
546
591
|
def_get :text, 2
|
547
|
-
|
548
|
-
# disappear
|
549
|
-
|
550
|
-
|
592
|
+
|
593
|
+
# disappear unless commentsShow is set
|
594
|
+
class << self
|
595
|
+
def accumulate(src, array, deplate, text, match)
|
596
|
+
m = deplate.variables['commentsShow']
|
597
|
+
if m
|
598
|
+
e = self.new(deplate, src, text, match)
|
599
|
+
if e and (m == true or e.get_marker == m)
|
600
|
+
e.update_styles('sourceComment')
|
601
|
+
array << e
|
602
|
+
return
|
603
|
+
end
|
604
|
+
end
|
605
|
+
Deplate::Core.log(["Hide comment", text], :debug)
|
606
|
+
end
|
607
|
+
|
608
|
+
def show_comment?(deplate, text)
|
609
|
+
m = deplate.variables['commentsShow']
|
610
|
+
return m && (m == true || text =~ Regexp.new('^\s*' + Regexp.escape(m)))
|
611
|
+
end
|
551
612
|
end
|
552
613
|
|
553
614
|
def setup
|
554
|
-
@
|
615
|
+
if @deplate.variables['commentsShow']
|
616
|
+
@multiliner = true
|
617
|
+
else
|
618
|
+
@collapse = true
|
619
|
+
end
|
620
|
+
end
|
621
|
+
|
622
|
+
def <<(line)
|
623
|
+
m = self.class.rx.match(line)
|
624
|
+
@accum << m[2]
|
555
625
|
end
|
556
626
|
end
|
557
627
|
|
@@ -570,6 +640,15 @@ class Deplate::Element::Note < Deplate::Element
|
|
570
640
|
@multiliner = true
|
571
641
|
@marker = get_marker
|
572
642
|
end
|
643
|
+
|
644
|
+
def finish
|
645
|
+
rv = super
|
646
|
+
case @marker
|
647
|
+
when '+'
|
648
|
+
log(['TODO', @accum.join(' ')], :anyway)
|
649
|
+
end
|
650
|
+
return rv
|
651
|
+
end
|
573
652
|
|
574
653
|
def to_be_continued?(line, klass, match)
|
575
654
|
indent = get_indent(line).size
|
@@ -600,7 +679,7 @@ class Deplate::List < Deplate::Element
|
|
600
679
|
@collapse = true
|
601
680
|
@itemopts = get_opts
|
602
681
|
if self.instance_of?(Deplate::List::Description)
|
603
|
-
@levelMax = @level + (@deplate.variables[
|
682
|
+
@levelMax = @level + (@deplate.variables['tabwidth'] || 4)
|
604
683
|
else
|
605
684
|
@levelMax = get_level_max
|
606
685
|
end
|
@@ -624,7 +703,17 @@ class Deplate::List < Deplate::Element
|
|
624
703
|
end
|
625
704
|
end
|
626
705
|
|
706
|
+
def pop(array)
|
707
|
+
if @elt.empty?
|
708
|
+
array.pop
|
709
|
+
else
|
710
|
+
@elt.pop
|
711
|
+
end
|
712
|
+
end
|
713
|
+
|
627
714
|
def unify_now(other)
|
715
|
+
# if other.exclude?(@deplate.variables['efilter'])
|
716
|
+
# Basically, this should happen in Input
|
628
717
|
if other.kind_of?(Deplate::Element::Paragraph)
|
629
718
|
@elt << Deplate::ListItem.new([], other.elt.flatten, @elt.last.listtype,
|
630
719
|
"Paragraph", other.level, other.level,
|
@@ -733,10 +822,10 @@ end
|
|
733
822
|
|
734
823
|
class Deplate::List::Task < Deplate::List
|
735
824
|
register_element
|
736
|
-
set_rx(/^(([[:blank:]]+)#(([0-9][A-Z]?|[A-Z][0-9]?)[[:blank:]]+(_|x|x?[0-9-]+%?)
|
825
|
+
set_rx(/^(([[:blank:]]+)#(([0-9][A-Z]?|[A-Z][0-9]?)([[:blank:]]+(_|x|x?[0-9-]+%?))?|(_|x|x?[0-9-]+%?)[[:blank:]]+([0-9][A-Z]?|[A-Z][0-9]?)))[[:blank:]]+(.*)$/)
|
737
826
|
self.listtype = 'Task'
|
738
827
|
def_get :item, lambda {[@itemopts[:priority], @itemopts[:category]].join}
|
739
|
-
def_get :text,
|
828
|
+
def_get :text, 9
|
740
829
|
|
741
830
|
attr_accessor :task
|
742
831
|
|
@@ -781,7 +870,7 @@ end
|
|
781
870
|
|
782
871
|
class Deplate::Element::Region < Deplate::Element
|
783
872
|
register_element
|
784
|
-
set_rx(/^(\s*)#([A-Z]([a-z][A-Za-z]*)?)\b(.*)(\<\<(
|
873
|
+
set_rx(/^(\s*)#([A-Z]([a-z][A-Za-z]*)?)\b(.*)(\<\<(.*)|:)\s*$/)
|
785
874
|
|
786
875
|
class_attribute :rxi_indent, 1
|
787
876
|
class_attribute :rxi_name, 2
|
@@ -797,8 +886,10 @@ class Deplate::Element::Region < Deplate::Element
|
|
797
886
|
/^(#{get_indent})?#End\s*$/
|
798
887
|
else
|
799
888
|
erx = @match[i]
|
800
|
-
if erx
|
889
|
+
if erx =~ /\S/
|
801
890
|
/^(#{get_indent})?#{Regexp.escape(erx)}\s*$/
|
891
|
+
else
|
892
|
+
/^\s*$/
|
802
893
|
end
|
803
894
|
end
|
804
895
|
}
|
@@ -816,12 +907,19 @@ class Deplate::Element::Region < Deplate::Element
|
|
816
907
|
|
817
908
|
attr_reader :specified, :regNote, :name
|
818
909
|
|
819
|
-
def setup(name=nil)
|
910
|
+
def setup(name=nil, args=nil)
|
820
911
|
@multiliner = true
|
821
912
|
@endRx = get_endrx
|
822
913
|
@name = name || get_name
|
823
914
|
begin
|
824
|
-
|
915
|
+
if args
|
916
|
+
@args = args
|
917
|
+
@regNote = ''
|
918
|
+
else
|
919
|
+
@args, @regNote = @deplate.input.parse_args(get_args)
|
920
|
+
end
|
921
|
+
@args = @args.merge(@deplate.variables["args@#{@name}"] || {})
|
922
|
+
Deplate::Region.deprecated_regnote(self, @args, @regNote)
|
825
923
|
region = @deplate.input.regions[@name]
|
826
924
|
unless region
|
827
925
|
if @deplate.formatter.matches?(@name)
|
@@ -861,7 +959,7 @@ end
|
|
861
959
|
|
862
960
|
class Deplate::Element::Command < Deplate::Element
|
863
961
|
register_element
|
864
|
-
set_rx(/^\s*#([A-Z]+)((\s[^:]+)?(:\s*(.+?)\s*)?)$/)
|
962
|
+
set_rx(/^\s*#([A-Z]+)\s*?((\s[^:]+)?(:\s*(.+?)\s*)?)$/)
|
865
963
|
attr :name
|
866
964
|
|
867
965
|
class << self
|
@@ -879,6 +977,7 @@ class Deplate::Element::Command < Deplate::Element
|
|
879
977
|
Deplate::Core.log(['Command', cmd, text], :debug)
|
880
978
|
begin
|
881
979
|
args, text = deplate.input.parse_args(match[2])
|
980
|
+
args = args.merge(deplate.variables["args@#{cmd}"] || {})
|
882
981
|
case cmd
|
883
982
|
when 'IF'
|
884
983
|
deplate.switches << !check_switch(deplate, text)
|
@@ -935,15 +1034,15 @@ class Deplate::Element::Command < Deplate::Element
|
|
935
1034
|
if text =~ /^\(.*\)$/
|
936
1035
|
text = text[1..-2]
|
937
1036
|
end
|
938
|
-
m = /^\s*([:]?\w+)\s*((!=~|=~|==|!=)\s*(.+)\s*|!)$/.match(text)
|
1037
|
+
m = /^\s*([:]?\w+(\[.+?\])?)\s*((!=~|=~|==|!=)\s*(.+)\s*|!)$/.match(text)
|
939
1038
|
if m
|
940
1039
|
var = m[1]
|
941
1040
|
negate = /^no([A-Z].*)$/.match(var)
|
942
1041
|
if negate
|
943
1042
|
var = negate[1][0..0].downcase + negate[1][1..-1]
|
944
1043
|
end
|
945
|
-
val = m[
|
946
|
-
op = val ? m[
|
1044
|
+
val = m[5]
|
1045
|
+
op = val ? m[4] : m[3]
|
947
1046
|
case val
|
948
1047
|
when 'true'
|
949
1048
|
val = true
|
@@ -953,8 +1052,17 @@ class Deplate::Element::Command < Deplate::Element
|
|
953
1052
|
else
|
954
1053
|
val = Deplate::Core.remove_backslashes(val.strip)
|
955
1054
|
end
|
1055
|
+
case var
|
1056
|
+
when 'fmt'
|
1057
|
+
vvar = deplate.formatter.formatter_name
|
1058
|
+
else
|
1059
|
+
vvar = get_var_or_option(deplate, var)
|
1060
|
+
end
|
1061
|
+
# if vvar.nil? and val == false
|
1062
|
+
# vvar = false
|
1063
|
+
# end
|
956
1064
|
if op == '!'
|
957
|
-
switch =
|
1065
|
+
switch = vvar
|
958
1066
|
if negate
|
959
1067
|
return !switch
|
960
1068
|
else
|
@@ -969,12 +1077,7 @@ class Deplate::Element::Command < Deplate::Element
|
|
969
1077
|
else
|
970
1078
|
raise 'Internal error'
|
971
1079
|
end
|
972
|
-
|
973
|
-
when 'fmt'
|
974
|
-
switch = compare.call(deplate.formatter.formatter_name, val)
|
975
|
-
else
|
976
|
-
switch = compare.call(get_var_or_option(deplate, var), val)
|
977
|
-
end
|
1080
|
+
switch = compare.call(vvar, val)
|
978
1081
|
if op[0..0] == '!' or negate
|
979
1082
|
return !switch
|
980
1083
|
else
|
@@ -990,10 +1093,15 @@ class Deplate::Element::Command < Deplate::Element
|
|
990
1093
|
end
|
991
1094
|
|
992
1095
|
def get_var_or_option(deplate, key)
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
1096
|
+
begin
|
1097
|
+
if deplate.options.allow.include?(':') && key =~ /^:(.*)$/
|
1098
|
+
return deplate.options.send($1)
|
1099
|
+
# elsif deplate.variables.has_key?(key)
|
1100
|
+
else
|
1101
|
+
return deplate.variables[key]
|
1102
|
+
end
|
1103
|
+
rescue Exception => e
|
1104
|
+
Deplate::Core.log(e, :error)
|
997
1105
|
end
|
998
1106
|
Deplate::Core.log(['Unknown variable or option', key])
|
999
1107
|
return nil
|
@@ -1111,7 +1219,7 @@ class Deplate::Element::Table < Deplate::Element
|
|
1111
1219
|
elsif parent
|
1112
1220
|
parent.span_x += 1
|
1113
1221
|
else
|
1114
|
-
log(["Table:
|
1222
|
+
log(["Table: Cannot join with left cell", x, y], :error)
|
1115
1223
|
end
|
1116
1224
|
when :join_above
|
1117
1225
|
parent = find_parent_cell(x, y, 0, 1)
|
@@ -1119,7 +1227,7 @@ class Deplate::Element::Table < Deplate::Element
|
|
1119
1227
|
elsif parent
|
1120
1228
|
parent.span_y += 1
|
1121
1229
|
else
|
1122
|
-
log(["Table:
|
1230
|
+
log(["Table: Cannot join with above cell", x, y], :error)
|
1123
1231
|
end
|
1124
1232
|
when :ruler, :noruler
|
1125
1233
|
row.is_ruler = true
|
@@ -1169,7 +1277,7 @@ class Deplate::Element::Table < Deplate::Element
|
|
1169
1277
|
|
1170
1278
|
def get_table_args(name)
|
1171
1279
|
args = @args[name]
|
1172
|
-
args ?
|
1280
|
+
args ? Deplate::Core.split_list(args, nil, nil, @source) : []
|
1173
1281
|
end
|
1174
1282
|
|
1175
1283
|
def find_parent_cell(x, y, delta_x, delta_y)
|
@@ -1231,11 +1339,11 @@ class Deplate::Element::Heading < Deplate::Element
|
|
1231
1339
|
end
|
1232
1340
|
|
1233
1341
|
def set_instance_top
|
1234
|
-
ls = @deplate.variables[
|
1342
|
+
ls = @deplate.variables['levelshift']
|
1235
1343
|
if ls
|
1236
1344
|
@level += ls.to_i
|
1237
1345
|
end
|
1238
|
-
@deplate.increase_current_heading(@level)
|
1346
|
+
@deplate.increase_current_heading(self, @level)
|
1239
1347
|
super
|
1240
1348
|
end
|
1241
1349
|
|
@@ -1292,6 +1400,7 @@ class Deplate::Element::Heading < Deplate::Element
|
|
1292
1400
|
end
|
1293
1401
|
end
|
1294
1402
|
if rv.is_top_heading?
|
1403
|
+
@deplate.output.simulate_reset
|
1295
1404
|
@deplate.options.heading_names[@top_heading_idx] = rv.elt
|
1296
1405
|
if @deplate.variables['subToC']
|
1297
1406
|
args = {'sub' => true, 'plain' => true}
|
@@ -1449,27 +1558,6 @@ class Deplate::Element::PotentialPageBreak < Deplate::Element
|
|
1449
1558
|
end
|
1450
1559
|
|
1451
1560
|
|
1452
|
-
# Don't register Paragraph in @@elements -- it's assigned if nothing else
|
1453
|
-
# matches
|
1454
|
-
class Deplate::Element::Paragraph < Deplate::Element
|
1455
|
-
set_formatter :format_paragraph
|
1456
|
-
set_rx(/^([[:blank:]]*)(.+)[[:blank:]]*$/)
|
1457
|
-
def_get :level, lambda {get_indent(@match[1]).size}
|
1458
|
-
def_get :text, lambda {@deplate.options.keep_whitespace ? @match[0] : @match[2]}
|
1459
|
-
|
1460
|
-
class << self
|
1461
|
-
def from_text(deplate, src, text)
|
1462
|
-
m = self.rx.match(text)
|
1463
|
-
self.new(deplate, src, text, m)
|
1464
|
-
end
|
1465
|
-
end
|
1466
|
-
|
1467
|
-
def setup
|
1468
|
-
@multiliner = true
|
1469
|
-
end
|
1470
|
-
end
|
1471
|
-
|
1472
|
-
|
1473
1561
|
class Deplate::Element::Clip < Deplate::BaseElement
|
1474
1562
|
attr_reader :is_template
|
1475
1563
|
# attr_accessor :prototype
|
@@ -1498,6 +1586,7 @@ class Deplate::Element::Clip < Deplate::BaseElement
|
|
1498
1586
|
|
1499
1587
|
def format_clip(invoker, expected)
|
1500
1588
|
unless @elt
|
1589
|
+
puts caller[0..10].join("\n")
|
1501
1590
|
log("We shouldn't be here. If you can track down when this happens, please send an example to the author.", :anyway)
|
1502
1591
|
process
|
1503
1592
|
end
|