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
|
@@ -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
|