deplate 0.7.3 → 0.8
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 +3 -0
- data/CHANGES.TXT +248 -175
- data/LICENSE.TXT +0 -0
- data/NEWS.TXT +28 -24
- data/README.TXT +0 -0
- data/TODO.TXT +174 -88
- data/VERSION.TXT +1 -1
- data/bin/deplate +0 -0
- data/bin/deplate.bat +0 -0
- data/etc/deplate.ini +91 -3
- data/lib/action_view/helpers/deplate.rb +45 -0
- data/lib/deplate.rb +6 -1
- data/lib/deplate/abstract-class.rb +0 -0
- data/lib/deplate/bib.rb +576 -0
- data/lib/deplate/builtin.rb +0 -0
- data/lib/deplate/cache.rb +55 -5
- data/lib/deplate/commands.rb +346 -183
- data/lib/deplate/common.rb +209 -48
- data/lib/deplate/converter.rb +12 -6
- data/lib/deplate/core.rb +777 -378
- data/lib/deplate/counters.rb +254 -0
- data/lib/deplate/css/article.css +4 -3
- data/lib/deplate/css/deplate.css +121 -5
- data/lib/deplate/css/heading-navbar.css +0 -0
- data/lib/deplate/css/layout-deplate-print.css +0 -0
- data/lib/deplate/css/layout-deplate.css +0 -0
- data/lib/deplate/css/sans-serif.css +0 -0
- data/lib/deplate/css/serif-e.css +0 -0
- data/lib/deplate/css/serif-rel.css +0 -0
- data/lib/deplate/css/serif.css +9 -3
- data/lib/deplate/css/slides.css +0 -0
- data/lib/deplate/css/tabbar-left.css +0 -0
- data/lib/deplate/css/tabbar-right-ie.css +3 -9
- data/lib/deplate/css/tabbar-right.css +51 -18
- data/lib/deplate/css/tabbar-top.css +7 -1
- data/lib/deplate/css/tabbar.css +0 -0
- data/lib/deplate/css/text-sans-serif.css +0 -0
- data/lib/deplate/css/text-serif.css +0 -0
- data/lib/deplate/define.rb +183 -177
- data/lib/deplate/deplate-string.rb +82 -0
- data/lib/deplate/docbook.rb +236 -128
- data/lib/deplate/elements.rb +584 -417
- data/lib/deplate/etc.rb +163 -101
- data/lib/deplate/external.rb +42 -11
- data/lib/deplate/fmt/dbk-article-4.1.2.rb +0 -0
- data/lib/deplate/fmt/dbk-article.rb +0 -0
- data/lib/deplate/fmt/dbk-book.rb +0 -0
- data/lib/deplate/fmt/dbk-ref.rb +3 -3
- data/lib/deplate/fmt/dbk-slides.rb +0 -0
- data/lib/deplate/fmt/dbk-snippet.rb +0 -0
- data/lib/deplate/fmt/html-snippet.rb +0 -0
- data/lib/deplate/fmt/html.rb +783 -550
- data/lib/deplate/fmt/htmlsite.rb +192 -199
- data/lib/deplate/fmt/htmlslides.rb +0 -0
- data/lib/deplate/fmt/htmlwebsite.rb +3 -3
- data/lib/deplate/fmt/latex-snippet.rb +0 -0
- data/lib/deplate/fmt/latex.rb +242 -83
- data/lib/deplate/fmt/null.rb +32 -0
- data/lib/deplate/fmt/php.rb +4 -4
- data/lib/deplate/fmt/phpsite.rb +6 -5
- data/lib/deplate/fmt/plain.rb +160 -106
- data/lib/deplate/fmt/template.rb +0 -0
- data/lib/deplate/fmt/xhtml10t.rb +0 -0
- data/lib/deplate/formatter-snippet.rb +0 -0
- data/lib/deplate/formatter.rb +613 -301
- data/lib/deplate/input.rb +202 -142
- data/lib/deplate/input/deplate-headings.rb +4 -6
- data/lib/deplate/input/deplate-restricted.rb +15 -9
- data/lib/deplate/input/deplate.rb +2 -4
- data/lib/deplate/input/rdoc.rb +39 -38
- data/lib/deplate/input/template.rb +0 -0
- data/lib/deplate/lib/Makefile.config +29 -0
- data/lib/deplate/lib/latex/deplate.sty +54 -0
- data/lib/deplate/lib/latex/highlight-extra.sty +0 -0
- data/lib/deplate/lib/latex/highlight-typical.sty +0 -0
- data/lib/deplate/lib/php/page-comment.inc.php +216 -0
- data/lib/deplate/lib/tabmenu.js +0 -0
- data/lib/deplate/locale/de.latin1 +155 -17
- data/lib/deplate/locale/ru.koi8-r +0 -0
- data/lib/deplate/locale/zh_cn.gb2312 +0 -0
- data/lib/deplate/macros.rb +133 -82
- data/lib/deplate/messages.rb +6 -4
- data/lib/deplate/metadata.rb +0 -0
- data/lib/deplate/metadata/marshal.rb +0 -0
- data/lib/deplate/metadata/xml.rb +0 -0
- data/lib/deplate/metadata/yaml.rb +0 -0
- data/lib/deplate/mod/anyword.rb +3 -3
- data/lib/deplate/mod/babelfish.rb +4 -4
- data/lib/deplate/mod/code-gvim.rb +8 -4
- data/lib/deplate/mod/code-highlight.rb +3 -3
- data/lib/deplate/mod/colored-log.rb +0 -0
- data/lib/deplate/mod/de.rb +2 -2
- data/lib/deplate/mod/en.rb +0 -0
- data/lib/deplate/mod/endnotes.rb +0 -0
- data/lib/deplate/mod/fr.rb +0 -0
- data/lib/deplate/mod/html-asciimath.rb +0 -0
- data/lib/deplate/mod/html-deplate-button.rb +0 -0
- data/lib/deplate/mod/html-headings-navbar.rb +5 -13
- data/lib/deplate/mod/html-jsmath.rb +39 -0
- data/lib/deplate/mod/html-obfuscate-email.rb +3 -3
- data/lib/deplate/mod/html-sidebar.rb +0 -0
- data/lib/deplate/mod/htmlslides-navbar-fh.rb +3 -3
- data/lib/deplate/mod/iconv.rb +0 -0
- data/lib/deplate/mod/imgurl.rb +4 -4
- data/lib/deplate/mod/inlatex-compound.rb +7 -10
- data/lib/deplate/mod/koma.rb +0 -0
- data/lib/deplate/mod/latex-emph-table-head.rb +0 -0
- data/lib/deplate/mod/latex-styles.rb +7 -4
- data/lib/deplate/mod/latex-verbatim-small.rb +0 -0
- data/lib/deplate/mod/makefile.rb +23 -7
- data/lib/deplate/mod/mark-external-urls.rb +3 -3
- data/lib/deplate/mod/markup-1-warn.rb +10 -10
- data/lib/deplate/mod/markup-1.rb +0 -0
- data/lib/deplate/mod/navbar-png.rb +24 -8
- data/lib/deplate/mod/noindent.rb +0 -0
- data/lib/deplate/mod/numpara.rb +0 -0
- data/lib/deplate/mod/particle-math.rb +4 -4
- data/lib/deplate/mod/php-extra.rb +46 -6
- data/lib/deplate/mod/pstoedit.rb +0 -0
- data/lib/deplate/mod/recode.rb +0 -0
- data/lib/deplate/mod/ru_koi8-r.rb +0 -0
- data/lib/deplate/mod/smart-dash.rb +26 -0
- data/lib/deplate/mod/smiley.rb +69 -7
- data/lib/deplate/mod/soffice.rb +0 -0
- data/lib/deplate/mod/symbols-latin1.rb +14 -23
- data/lib/deplate/mod/symbols-od-utf-8.rb +5 -3
- data/lib/deplate/mod/symbols-plain.rb +5 -35
- data/lib/deplate/mod/symbols-sgml.rb +8 -9
- data/lib/deplate/mod/symbols-utf-8.rb +8 -9
- data/lib/deplate/mod/symbols-xml.rb +5 -9
- data/lib/deplate/mod/syntax-region-alt.rb +5 -5
- data/lib/deplate/mod/utf8.rb +0 -0
- data/lib/deplate/mod/validate-html.rb +0 -0
- data/lib/deplate/mod/xmlrpc.rb +0 -0
- data/lib/deplate/mod/zh-cn-autospace.rb +18 -20
- data/lib/deplate/mod/zh-cn.rb +4 -6
- data/lib/deplate/nukumi2.rb +71 -0
- data/lib/deplate/once-method.rb +0 -0
- data/lib/deplate/output.rb +19 -21
- data/lib/deplate/particles.rb +178 -116
- data/lib/deplate/regions.rb +99 -58
- data/lib/deplate/skeletons.rb +122 -0
- data/lib/deplate/structured.rb +164 -106
- data/lib/deplate/template.rb +67 -43
- data/lib/deplate/templates/html-doc.html +0 -0
- data/lib/deplate/templates/html-left-tabbar-js.html +0 -0
- data/lib/deplate/templates/html-left-tabbar.html +0 -0
- data/lib/deplate/templates/html-tabbar-right-pcomments.php +22 -0
- data/lib/deplate/templates/html-tabbar-right-step.html +24 -0
- data/lib/deplate/templates/html-tabbar-right-table.html +0 -0
- data/lib/deplate/templates/html-tabbar-right.html +2 -4
- data/lib/deplate/templates/html-tabbar-top.html +0 -9
- data/lib/deplate/templates/html-tabbar.html +0 -0
- data/lib/deplate/variables.rb +127 -0
- data/lib/deplate/wiki-markup.rb +99 -33
- data/lib/deplate/xml.rb +18 -18
- data/lib/deplate/zh-cn.rb +0 -0
- data/lib/ps2ppm.rb +0 -0
- data/man/man1/deplate.1 +564 -474
- metadata +201 -186
data/lib/deplate/builtin.rb
CHANGED
|
File without changes
|
data/lib/deplate/cache.rb
CHANGED
|
@@ -3,23 +3,69 @@
|
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
|
5
5
|
# @Created: 21-Aug-2005.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 08-Apr-2006.
|
|
7
|
+
# @Revision: 0.46
|
|
8
8
|
|
|
9
9
|
# = Description
|
|
10
10
|
# This class provides a cache for dynamically generated classes.
|
|
11
11
|
class Deplate::Cache
|
|
12
12
|
@@custom_particles = {}
|
|
13
|
+
@@custom_macros = {}
|
|
14
|
+
@@custom_elements = {}
|
|
15
|
+
@@custom_regions = {}
|
|
16
|
+
@@custom_commands = {}
|
|
13
17
|
|
|
14
18
|
attr_reader :cls
|
|
15
19
|
|
|
16
20
|
class << self
|
|
17
21
|
def particle(deplate, body, args)
|
|
18
22
|
register = args[:register]
|
|
19
|
-
|
|
23
|
+
parent = args[:super] || Deplate::Particle
|
|
24
|
+
new(@@custom_particles, parent, deplate, body, args) do |cls|
|
|
20
25
|
if register
|
|
21
26
|
args[:id] = body
|
|
22
|
-
deplate.register_particle(cls, args)
|
|
27
|
+
deplate.input.register_particle(cls, args)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def element(deplate, body, args)
|
|
33
|
+
register = args[:register]
|
|
34
|
+
parent = args[:super] || Deplate::Element
|
|
35
|
+
new(@@custom_elements, parent, deplate, body, args) do |cls|
|
|
36
|
+
if register
|
|
37
|
+
args[:id] = body
|
|
38
|
+
deplate.input.register_element(cls, args)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def command(deplate, body, args)
|
|
44
|
+
register = args[:register]
|
|
45
|
+
parent = args[:super] || Deplate::Command
|
|
46
|
+
new(@@custom_commands, parent, deplate, body, args) do |cls|
|
|
47
|
+
if register
|
|
48
|
+
deplate.input.register_command(cls, args)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def region(deplate, body, args)
|
|
54
|
+
register = args[:register]
|
|
55
|
+
parent = args[:super] || Deplate::Region
|
|
56
|
+
new(@@custom_regions, parent, deplate, body, args) do |cls|
|
|
57
|
+
if register
|
|
58
|
+
deplate.input.register_region(cls, args)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def macro(deplate, body, args)
|
|
64
|
+
register = args[:register]
|
|
65
|
+
parent = args[:super] || Deplate::Region
|
|
66
|
+
new(@@custom_macros, parent, deplate, body, args) do |cls|
|
|
67
|
+
if register
|
|
68
|
+
deplate.input.register_macro(cls, args)
|
|
23
69
|
end
|
|
24
70
|
end
|
|
25
71
|
end
|
|
@@ -32,7 +78,11 @@ class Deplate::Cache
|
|
|
32
78
|
retrieve_particle(body, specific)
|
|
33
79
|
unless @cls
|
|
34
80
|
@cls = Class.new(super_class)
|
|
35
|
-
|
|
81
|
+
if body.kind_of?(Proc)
|
|
82
|
+
@cls.class_eval(&body)
|
|
83
|
+
else
|
|
84
|
+
@cls.class_eval(body)
|
|
85
|
+
end
|
|
36
86
|
store_particle(body, specific)
|
|
37
87
|
end
|
|
38
88
|
if @cls and block_given?
|
data/lib/deplate/commands.rb
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
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: 02-
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 02-Mai-2006.
|
|
7
|
+
# @Revision: 0.1164
|
|
8
8
|
|
|
9
9
|
# Description:
|
|
10
10
|
#
|
|
@@ -40,15 +40,20 @@ class Deplate::Command < Deplate::Element
|
|
|
40
40
|
@@commands
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
+
def register_as(name, c=self)
|
|
44
|
+
@@commands[name] = self
|
|
45
|
+
end
|
|
46
|
+
|
|
43
47
|
def update_variables(hash, opts, args)
|
|
44
48
|
if args
|
|
45
|
-
|
|
46
|
-
args[
|
|
47
|
-
if
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
opts ||= {}
|
|
50
|
+
d = args['date']
|
|
51
|
+
args['date'] = get_date(d, args) if d
|
|
52
|
+
if opts['add']
|
|
53
|
+
if opts['add'].kind_of?(String)
|
|
54
|
+
sep = opts['add']
|
|
50
55
|
else
|
|
51
|
-
sep =
|
|
56
|
+
sep = ' '
|
|
52
57
|
end
|
|
53
58
|
args.each_pair do |k,v|
|
|
54
59
|
if hash[k]
|
|
@@ -60,14 +65,13 @@ class Deplate::Command < Deplate::Element
|
|
|
60
65
|
hash.update(args)
|
|
61
66
|
end
|
|
62
67
|
else
|
|
63
|
-
Deplate::Core.log([
|
|
68
|
+
Deplate::Core.log(['No arguments', opts], :error, src)
|
|
64
69
|
end
|
|
65
70
|
end
|
|
66
71
|
end
|
|
67
72
|
|
|
68
73
|
def setup(args, cmd)
|
|
69
|
-
@
|
|
70
|
-
@collapse = false
|
|
74
|
+
# @collapse = false
|
|
71
75
|
@name = cmd
|
|
72
76
|
@accum = [@text]
|
|
73
77
|
@can_be_labelled = false
|
|
@@ -91,26 +95,23 @@ class Deplate::Command < Deplate::Element
|
|
|
91
95
|
end
|
|
92
96
|
|
|
93
97
|
def format_special
|
|
94
|
-
format_unknown(self)
|
|
98
|
+
@deplate.formatter.format_unknown(self)
|
|
95
99
|
end
|
|
96
100
|
end
|
|
97
101
|
|
|
98
102
|
|
|
99
103
|
class Deplate::Command::CAP < Deplate::Command
|
|
100
|
-
|
|
101
|
-
|
|
104
|
+
register_as 'CAP'
|
|
105
|
+
register_as 'CAPTION'
|
|
102
106
|
|
|
103
107
|
class << self
|
|
104
108
|
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
105
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
Deplate::Core.log('Element already has a caption', :error, src)
|
|
109
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
110
|
+
last = array.last
|
|
111
|
+
if last
|
|
112
|
+
last.set_caption(Deplate::CaptionDef.new(text, args, src))
|
|
110
113
|
else
|
|
111
|
-
|
|
112
|
-
last.caption = Deplate::CaptionDef.new(elt, args)
|
|
113
|
-
last.register_caption
|
|
114
|
+
Deplate::Core.log(["Can't attach caption to", nil], :error, src)
|
|
114
115
|
end
|
|
115
116
|
end
|
|
116
117
|
end
|
|
@@ -118,23 +119,23 @@ end
|
|
|
118
119
|
|
|
119
120
|
|
|
120
121
|
class Deplate::Command::LANG < Deplate::Command
|
|
121
|
-
|
|
122
|
-
|
|
122
|
+
register_as 'LANG'
|
|
123
|
+
register_as 'LANGUAGE'
|
|
124
|
+
self.volatile = true
|
|
123
125
|
|
|
124
126
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
125
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
127
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
126
128
|
deplate.set_lang(text)
|
|
127
129
|
end
|
|
128
130
|
end
|
|
129
131
|
|
|
130
132
|
|
|
131
133
|
class Deplate::Command::INC < Deplate::Command
|
|
132
|
-
|
|
133
|
-
|
|
134
|
+
register_as 'INC'
|
|
135
|
+
register_as 'INCLUDE'
|
|
134
136
|
|
|
135
137
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
136
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
137
|
-
formatter_name = deplate.formatter.formatter_name
|
|
138
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
138
139
|
doc = args['doc'] || args['var'] || args['val']
|
|
139
140
|
if args.has_key?('file')
|
|
140
141
|
if text
|
|
@@ -164,39 +165,17 @@ class Deplate::Command::INC < Deplate::Command
|
|
|
164
165
|
if strings
|
|
165
166
|
deplate.include_stringarray(strings, array, nil, src.file)
|
|
166
167
|
else
|
|
167
|
-
Deplate::Core.log([
|
|
168
|
+
Deplate::Core.log(['Unknown doc variable', doc], :error, src)
|
|
168
169
|
end
|
|
169
170
|
elsif !text or text == ''
|
|
170
|
-
Deplate::Core.log([
|
|
171
|
+
Deplate::Core.log(['Malformed command', cmd, text], :error, src)
|
|
171
172
|
else
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
]
|
|
178
|
-
dirs += Deplate::Core.library_directories("lib", formatter_name, text)
|
|
179
|
-
dirs += Deplate::Core.library_directories("lib", text)
|
|
180
|
-
dirs += Deplate::Core.library_directories(text)
|
|
181
|
-
# dirs = [
|
|
182
|
-
# File.join(pwd, "deplate.rc", formatter_name, text),
|
|
183
|
-
# File.join(pwd, "deplate.rc", text),
|
|
184
|
-
# File.join(pwd, text),
|
|
185
|
-
# File.join(Deplate::Core::CfgDir, "lib", formatter_name, text),
|
|
186
|
-
# File.join(Deplate::Core::CfgDir, "lib", text),
|
|
187
|
-
# File.join(Deplate::Core::CfgDir, text),
|
|
188
|
-
# File.join(Deplate::Core::LibDir, "lib", formatter_name, text),
|
|
189
|
-
# File.join(Deplate::Core::LibDir, "lib", text),
|
|
190
|
-
# File.join(Deplate::Core::DataDir, "lib", formatter_name, text),
|
|
191
|
-
# File.join(Deplate::Core::DataDir, "lib", text),
|
|
192
|
-
# ]
|
|
193
|
-
for fn in dirs
|
|
194
|
-
if !File.directory?(fn) and File.exists?(fn)
|
|
195
|
-
deplate.include_file(array, fn)
|
|
196
|
-
return
|
|
197
|
-
end
|
|
173
|
+
fn = deplate.find_in_lib(text, :pwd => true)
|
|
174
|
+
if fn
|
|
175
|
+
deplate.include_file(array, fn)
|
|
176
|
+
else
|
|
177
|
+
Deplate::Core.log(['File not found', text], :error, src)
|
|
198
178
|
end
|
|
199
|
-
Deplate::Core.log(["File not found", text], :error, src)
|
|
200
179
|
end
|
|
201
180
|
ensure
|
|
202
181
|
deplate.variables['embeddedTextRx'] = embeddedTextRx_orig if embeddedTextRx
|
|
@@ -208,28 +187,62 @@ class Deplate::Command::INC < Deplate::Command
|
|
|
208
187
|
end
|
|
209
188
|
|
|
210
189
|
|
|
211
|
-
class Deplate::Command::
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
deplate.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
190
|
+
class Deplate::Command::VAR < Deplate::Command
|
|
191
|
+
register_as 'DOC'
|
|
192
|
+
register_as 'VAR'
|
|
193
|
+
self.volatile = true
|
|
194
|
+
|
|
195
|
+
class << self
|
|
196
|
+
def set_variable(deplate, var, value, args={}, src=nil)
|
|
197
|
+
if deplate.input.allow_set_variable(var)
|
|
198
|
+
deplate.register_metadata(src,
|
|
199
|
+
'type' => 'variable',
|
|
200
|
+
'name' => var,
|
|
201
|
+
'value' => value
|
|
202
|
+
)
|
|
203
|
+
update_variables(deplate.variables, args, var => value)
|
|
204
|
+
return true
|
|
205
|
+
else
|
|
206
|
+
Deplate::Core.log(['Disabled', var], :error, src)
|
|
207
|
+
return false
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
212
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
213
|
+
id = args['id']
|
|
214
|
+
if id
|
|
215
|
+
if deplate.input.allow_set_variable(id)
|
|
216
|
+
set_variable(deplate, id, text, args, src)
|
|
217
|
+
end
|
|
218
|
+
else
|
|
219
|
+
opts, text = deplate.input.parse_args(text, nil, false)
|
|
220
|
+
for k, v in opts
|
|
221
|
+
unless set_variable(deplate, k, v, args, src)
|
|
222
|
+
opts.delete(k)
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
end
|
|
223
226
|
end
|
|
224
|
-
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
class Deplate::Command::KEYWORDS < Deplate::Command::VAR
|
|
232
|
+
register_as 'KEYWORDS'
|
|
233
|
+
self.volatile = true
|
|
234
|
+
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
235
|
+
args['id'] = 'keywords'
|
|
236
|
+
super
|
|
225
237
|
end
|
|
226
238
|
end
|
|
227
239
|
|
|
228
240
|
|
|
229
241
|
class Deplate::Command::OPT < Deplate::Command
|
|
230
|
-
|
|
242
|
+
register_as 'OPT'
|
|
243
|
+
self.volatile = true
|
|
231
244
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
232
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
245
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
233
246
|
elt = array.last
|
|
234
247
|
if elt
|
|
235
248
|
opts, text = deplate.input.parse_args(text, nil, false)
|
|
@@ -244,25 +257,25 @@ end
|
|
|
244
257
|
|
|
245
258
|
|
|
246
259
|
class Deplate::Command::PUT < Deplate::Command
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
260
|
+
register_as 'PUT'
|
|
261
|
+
register_as 'CLIP'
|
|
262
|
+
register_as 'SET'
|
|
250
263
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
251
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
264
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
252
265
|
id = args["id"]
|
|
253
266
|
if id
|
|
254
267
|
text = deplate.parse_with_source(src, text, false)
|
|
255
268
|
deplate.set_clip(id, Deplate::Element::Clip.new(text, deplate, src))
|
|
256
269
|
else
|
|
257
|
-
Deplate::Core.log(["No
|
|
270
|
+
Deplate::Core.log(["No ID given", text], :error, src)
|
|
258
271
|
end
|
|
259
272
|
end
|
|
260
273
|
end
|
|
261
274
|
|
|
262
275
|
|
|
263
276
|
class Deplate::Command::GET < Deplate::Command
|
|
264
|
-
|
|
265
|
-
|
|
277
|
+
register_as 'GET'
|
|
278
|
+
set_formatter :format_GET
|
|
266
279
|
|
|
267
280
|
def setup_command
|
|
268
281
|
@id = @args["id"] || @accum[0]
|
|
@@ -281,13 +294,16 @@ end
|
|
|
281
294
|
|
|
282
295
|
|
|
283
296
|
class Deplate::Command::XARG < Deplate::Command
|
|
284
|
-
|
|
285
|
-
|
|
297
|
+
register_as 'XARG'
|
|
298
|
+
register_as 'XVAL'
|
|
299
|
+
self.volatile = true
|
|
286
300
|
|
|
287
301
|
def setup_command
|
|
288
302
|
id = args["id"] || @accum[0]
|
|
289
|
-
@elt = @deplate.variables[id]
|
|
303
|
+
@elt = @deplate.variables[id] || @args["default"]
|
|
290
304
|
if @elt
|
|
305
|
+
@elt = Deplate::Core.escape_characters(@elt, @args)
|
|
306
|
+
@elt = post_process_text(@elt)
|
|
291
307
|
@elt = @elt.split(/[\n\r]/).each {|l| l.chomp!}
|
|
292
308
|
else
|
|
293
309
|
log(["Unknown variable", id, @name], :error)
|
|
@@ -301,21 +317,25 @@ end
|
|
|
301
317
|
|
|
302
318
|
|
|
303
319
|
class Deplate::Command::ARG < Deplate::Command
|
|
304
|
-
|
|
305
|
-
|
|
320
|
+
register_as 'ARG'
|
|
321
|
+
register_as 'VAL'
|
|
322
|
+
self.volatile = true
|
|
306
323
|
|
|
307
324
|
class << self
|
|
308
325
|
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
309
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
310
|
-
id = args[
|
|
311
|
-
val = deplate.variables[id]
|
|
326
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
327
|
+
id = args['id'] || text
|
|
328
|
+
val = deplate.variables[id] || args['default']
|
|
312
329
|
if val
|
|
330
|
+
val = Deplate::Core.escape_characters(val, args)
|
|
331
|
+
val = Deplate::CommonGround.post_process_text(val, args)
|
|
332
|
+
# val.gsub!(/\\/, '\\\\\\\\')
|
|
313
333
|
acc = val.split(/[\n\r]/)
|
|
314
334
|
acc.each {|l| l.chomp!}
|
|
315
335
|
d = deplate.options.master ? deplate.options.master : deplate
|
|
316
336
|
d.include_stringarray(acc, array, src.begin, src.file)
|
|
317
337
|
else
|
|
318
|
-
Deplate::Core.log([
|
|
338
|
+
Deplate::Core.log(['Unknown variable', id, cmd], :error, src)
|
|
319
339
|
end
|
|
320
340
|
end
|
|
321
341
|
end
|
|
@@ -323,10 +343,11 @@ end
|
|
|
323
343
|
|
|
324
344
|
|
|
325
345
|
class Deplate::Command::BIB < Deplate::Command
|
|
326
|
-
|
|
346
|
+
register_as 'BIB'
|
|
347
|
+
self.volatile = true
|
|
327
348
|
class << self
|
|
328
349
|
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
329
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
350
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
330
351
|
bibs = text.strip.split(/\s*\|\s*/)
|
|
331
352
|
deplate.options.bib += bibs
|
|
332
353
|
deplate.formatter.read_bib(bibs)
|
|
@@ -336,10 +357,11 @@ end
|
|
|
336
357
|
|
|
337
358
|
|
|
338
359
|
class Deplate::Command::TITLE < Deplate::Command
|
|
339
|
-
|
|
340
|
-
|
|
360
|
+
register_as 'TITLE'
|
|
361
|
+
register_as 'TI'
|
|
362
|
+
self.volatile = true
|
|
341
363
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
342
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
364
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
343
365
|
c = deplate.parse_with_source(src, text, false)
|
|
344
366
|
deplate.set_clip("title", Deplate::Element::Clip.new(c, deplate, src))
|
|
345
367
|
deplate.register_metadata(src,
|
|
@@ -352,11 +374,12 @@ end
|
|
|
352
374
|
|
|
353
375
|
|
|
354
376
|
class Deplate::Command::AUTHOR < Deplate::Command
|
|
355
|
-
|
|
356
|
-
|
|
377
|
+
register_as 'AUTHOR'
|
|
378
|
+
register_as 'AU'
|
|
379
|
+
self.volatile = true
|
|
357
380
|
class << self
|
|
358
381
|
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
359
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
382
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
360
383
|
deplate.options.author ||= []
|
|
361
384
|
for this in text.split(/([;\/]|\s+(&|and))\s+/)
|
|
362
385
|
unless this =~ /^\s*([;\/&]|and)\s*$/
|
|
@@ -391,10 +414,11 @@ end
|
|
|
391
414
|
|
|
392
415
|
|
|
393
416
|
class Deplate::Command::AUTHORNOTE < Deplate::Command
|
|
394
|
-
|
|
395
|
-
|
|
417
|
+
register_as 'AUTHORNOTE'
|
|
418
|
+
register_as 'AN'
|
|
419
|
+
self.volatile = true
|
|
396
420
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
397
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
421
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
398
422
|
unless text.empty?
|
|
399
423
|
author = deplate.options.author.last
|
|
400
424
|
if author
|
|
@@ -403,7 +427,7 @@ class Deplate::Command::AUTHORNOTE < Deplate::Command
|
|
|
403
427
|
end
|
|
404
428
|
ans = deplate.options.author.collect {|h| h[:note]}
|
|
405
429
|
sep = deplate.variables["authorSep"] || "; "
|
|
406
|
-
ans = ans.join(sep)
|
|
430
|
+
ans = ans.compact.join(sep)
|
|
407
431
|
parsed = deplate.parse_with_source(src, ans, false)
|
|
408
432
|
deplate.set_clip("authornote", Deplate::Element::Clip.new(parsed, deplate, src))
|
|
409
433
|
deplate.register_metadata(src,
|
|
@@ -416,9 +440,10 @@ end
|
|
|
416
440
|
|
|
417
441
|
|
|
418
442
|
class Deplate::Command::DATE < Deplate::Command
|
|
419
|
-
|
|
443
|
+
register_as 'DATE'
|
|
444
|
+
self.volatile = true
|
|
420
445
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
421
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
446
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
422
447
|
d = get_date(text, args)
|
|
423
448
|
c = deplate.parse_with_source(src, d, false)
|
|
424
449
|
deplate.set_clip(cmd.downcase, Deplate::Element::Clip.new(c, deplate, src))
|
|
@@ -432,11 +457,11 @@ end
|
|
|
432
457
|
|
|
433
458
|
|
|
434
459
|
class Deplate::Command::IMG < Deplate::Command
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
460
|
+
register_as 'IMG'
|
|
461
|
+
register_as 'IMAGE'
|
|
462
|
+
register_as 'FIG'
|
|
463
|
+
register_as 'FIGURE'
|
|
464
|
+
set_formatter :format_IMG
|
|
440
465
|
|
|
441
466
|
def register_caption
|
|
442
467
|
register_figure
|
|
@@ -445,25 +470,97 @@ end
|
|
|
445
470
|
|
|
446
471
|
|
|
447
472
|
class Deplate::Command::MAKETITLE < Deplate::Command
|
|
448
|
-
|
|
449
|
-
|
|
473
|
+
register_as 'MAKETITLE'
|
|
474
|
+
set_formatter :format_title
|
|
450
475
|
end
|
|
451
476
|
|
|
452
477
|
|
|
453
478
|
class Deplate::Command::MAKEBIB < Deplate::Command
|
|
454
|
-
|
|
455
|
-
|
|
479
|
+
register_as 'MAKEBIB'
|
|
480
|
+
set_formatter :format_MAKEBIB
|
|
481
|
+
def setup_command
|
|
482
|
+
unless @text.nil? or @text.empty? or @deplate.variables['bibStyle']
|
|
483
|
+
log(['Setting variable', 'bibStyle', @text], :anyway)
|
|
484
|
+
@deplate.variables['bibStyle'] = @text
|
|
485
|
+
end
|
|
486
|
+
end
|
|
456
487
|
end
|
|
457
488
|
|
|
458
489
|
|
|
459
490
|
class Deplate::Command::LIST < Deplate::Command
|
|
460
|
-
|
|
461
|
-
|
|
491
|
+
register_as 'LIST'
|
|
492
|
+
set_formatter :format_LIST
|
|
493
|
+
end
|
|
494
|
+
|
|
495
|
+
class Deplate::Command::DEFLIST < Deplate::Command
|
|
496
|
+
register_as 'DEFLIST'
|
|
497
|
+
self.volatile = true
|
|
498
|
+
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
499
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
500
|
+
list = args['id'] || args['list'] || text
|
|
501
|
+
deplate.options.listings.def_listing(list, nil, args)
|
|
502
|
+
i = deplate.current_heading
|
|
503
|
+
p = args['parent']
|
|
504
|
+
deplate.options.counters.def_counter(list, :parent => p)
|
|
505
|
+
end
|
|
506
|
+
end
|
|
507
|
+
|
|
508
|
+
class Deplate::Command::REGISTER < Deplate::Command
|
|
509
|
+
register_as 'REGISTER'
|
|
510
|
+
self.volatile = true
|
|
511
|
+
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
512
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
513
|
+
list = args['id'] || args['list']
|
|
514
|
+
if list
|
|
515
|
+
elt = array.last
|
|
516
|
+
if elt
|
|
517
|
+
name = args['name'] || text
|
|
518
|
+
if name and !name.empty?
|
|
519
|
+
cap = Deplate::CaptionDef.new(name, args, src)
|
|
520
|
+
elt.set_caption(cap)
|
|
521
|
+
end
|
|
522
|
+
elt.register_in_listing(list, args)
|
|
523
|
+
return
|
|
524
|
+
end
|
|
525
|
+
end
|
|
526
|
+
Deplate::Core.log(['Nothing to register', list], :error, src)
|
|
527
|
+
end
|
|
528
|
+
end
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
class Deplate::Command::DEFCOUNTER < Deplate::Command
|
|
532
|
+
register_as 'DEFCOUNTER'
|
|
533
|
+
self.volatile = true
|
|
534
|
+
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
535
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
536
|
+
c = args['id'] || args['counter'] || text
|
|
537
|
+
# i = deplate.current_heading
|
|
538
|
+
p = args['parent']
|
|
539
|
+
deplate.options.counters.def_counter(c, :parent => p)
|
|
540
|
+
end
|
|
541
|
+
end
|
|
542
|
+
|
|
543
|
+
class Deplate::Command::COUNTER < Deplate::Command
|
|
544
|
+
register_as 'COUNTER'
|
|
545
|
+
self.volatile = true
|
|
546
|
+
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
547
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
548
|
+
c = args['id'] || args['counter'] || text
|
|
549
|
+
if args['reset']
|
|
550
|
+
# <+TBD+>
|
|
551
|
+
elsif (by = args['increase'])
|
|
552
|
+
by = by.to_i
|
|
553
|
+
l = args['level']
|
|
554
|
+
# <+TBD+>
|
|
555
|
+
else
|
|
556
|
+
Deplate::Core.log(['#COUNTER', 'Missing directive'], :error, src)
|
|
557
|
+
end
|
|
558
|
+
end
|
|
462
559
|
end
|
|
463
560
|
|
|
464
561
|
|
|
465
562
|
class Deplate::Command::TABLE < Deplate::Command
|
|
466
|
-
|
|
563
|
+
register_as 'TABLE'
|
|
467
564
|
def setup_command
|
|
468
565
|
if File.exist?(@text)
|
|
469
566
|
File.open(@text) {|io| @accum = io.read.split(/[\r\n]+/)}
|
|
@@ -473,14 +570,17 @@ class Deplate::Command::TABLE < Deplate::Command
|
|
|
473
570
|
end
|
|
474
571
|
|
|
475
572
|
def finish
|
|
476
|
-
|
|
573
|
+
rv = Deplate::Regions::Table.make_char_separated(self, @accum, @args['sep'])
|
|
574
|
+
rv.unify_props(self)
|
|
575
|
+
rv
|
|
477
576
|
end
|
|
478
577
|
end
|
|
479
578
|
|
|
480
579
|
|
|
481
580
|
class Deplate::Command::IDX < Deplate::Command
|
|
482
|
-
|
|
483
|
-
|
|
581
|
+
register_as 'IDX'
|
|
582
|
+
self.volatile = true
|
|
583
|
+
set_formatter :format_IDX
|
|
484
584
|
|
|
485
585
|
class << self
|
|
486
586
|
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
@@ -512,7 +612,8 @@ class Deplate::Command::IDX < Deplate::Command
|
|
|
512
612
|
auto = args['auto']
|
|
513
613
|
auto = deplate.variables['autoindex'] if auto.nil?
|
|
514
614
|
for i in text.split(/\s*;\s*/)
|
|
515
|
-
idx = deplate.add_index(nil, i, deplate.get_current_heading)
|
|
615
|
+
# <+TBD IDX+>idx = deplate.add_index(nil, i, deplate.get_current_heading)
|
|
616
|
+
idx = deplate.add_index(container, i)
|
|
516
617
|
Deplate::Particle.auto_indexing(deplate, idx) if auto
|
|
517
618
|
accum << idx
|
|
518
619
|
container.add_metadata(source,
|
|
@@ -546,10 +647,11 @@ end
|
|
|
546
647
|
|
|
547
648
|
|
|
548
649
|
class Deplate::Command::AUTOIDX < Deplate::Command
|
|
549
|
-
|
|
650
|
+
register_as 'AUTOIDX'
|
|
651
|
+
self.volatile = true
|
|
550
652
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
551
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
552
|
-
hd
|
|
653
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
654
|
+
hd = deplate.get_current_heading
|
|
553
655
|
for i in text.split(/\s*;\s*/)
|
|
554
656
|
Deplate::Particle.auto_indexing(deplate, deplate.add_index(nil, i, hd))
|
|
555
657
|
end
|
|
@@ -558,9 +660,10 @@ end
|
|
|
558
660
|
|
|
559
661
|
|
|
560
662
|
class Deplate::Command::NOIDX < Deplate::Command
|
|
561
|
-
|
|
663
|
+
register_as 'NOIDX'
|
|
664
|
+
self.volatile = true
|
|
562
665
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
563
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
666
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
564
667
|
for i in text.split(/\s*;\s*/)
|
|
565
668
|
deplate.remove_index(self, i)
|
|
566
669
|
end
|
|
@@ -569,26 +672,31 @@ end
|
|
|
569
672
|
|
|
570
673
|
|
|
571
674
|
class Deplate::Command::DONTIDX < Deplate::Command
|
|
572
|
-
|
|
675
|
+
register_as 'DONTIDX'
|
|
676
|
+
self.volatile = true
|
|
573
677
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
574
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
678
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
575
679
|
deplate.options.dont_index += text.split(/\s*;\s*/)
|
|
576
680
|
end
|
|
577
681
|
end
|
|
578
682
|
|
|
579
683
|
|
|
580
684
|
class Deplate::Command::WITH < Deplate::Command
|
|
581
|
-
|
|
685
|
+
register_as 'WITH'
|
|
582
686
|
def self.accumulate(src, array, deplate, text, match, args, cmd)
|
|
583
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
687
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
584
688
|
file = args["file"]
|
|
585
689
|
body = nil
|
|
586
690
|
if file
|
|
587
691
|
File.open(file) {|io| body = io.readlines}
|
|
588
692
|
else
|
|
589
|
-
arg = args["arg"]
|
|
693
|
+
arg = args["arg"] || args["var"]
|
|
590
694
|
if arg
|
|
591
|
-
body = deplate.variables[arg]
|
|
695
|
+
body = deplate.variables[arg]
|
|
696
|
+
case body
|
|
697
|
+
when String
|
|
698
|
+
body = body.split(/[\n\r]/)
|
|
699
|
+
end
|
|
592
700
|
end
|
|
593
701
|
end
|
|
594
702
|
if body
|
|
@@ -604,68 +712,97 @@ end
|
|
|
604
712
|
|
|
605
713
|
|
|
606
714
|
class Deplate::Command::ABBREV < Deplate::Command
|
|
607
|
-
|
|
715
|
+
register_as 'ABBREV'
|
|
716
|
+
self.volatile = true
|
|
608
717
|
@@abbrevn = 0
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
718
|
+
|
|
719
|
+
class << self
|
|
720
|
+
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
721
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
722
|
+
rx = nil
|
|
723
|
+
rs = nil
|
|
724
|
+
tx = nil
|
|
725
|
+
cmd = nil
|
|
726
|
+
deplate.options.abbrevs ||= {}
|
|
727
|
+
catch(:exit) do
|
|
728
|
+
w = args['word'] || args['w'] || args['wd']
|
|
729
|
+
if w
|
|
730
|
+
rs = %{\\b%s\\b} % Regexp.escape(w)
|
|
731
|
+
# tx = "#{Deplate::Core.remove_backslashes(text.inspect)}"
|
|
732
|
+
# tx = "#{text.inspect}"
|
|
733
|
+
# tx = text.inspect
|
|
734
|
+
tx = text
|
|
735
|
+
throw :exit
|
|
736
|
+
end
|
|
737
|
+
s = args['symbol'] || args['sym']
|
|
738
|
+
if s
|
|
739
|
+
rs = %{`%s} % Regexp.escape(s)
|
|
740
|
+
# tx = "#{Deplate::Core.remove_backslashes(text.inspect)}"
|
|
741
|
+
# tx = text.inspect
|
|
742
|
+
tx = text
|
|
743
|
+
throw :exit
|
|
744
|
+
end
|
|
745
|
+
r = args['regexp'] || args['rx']
|
|
746
|
+
if r
|
|
747
|
+
rs = r
|
|
748
|
+
tx = lambda {|p| p.match[0].gsub(Regexp.new(r), text)}
|
|
749
|
+
throw :exit
|
|
750
|
+
end
|
|
633
751
|
end
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
752
|
+
if rs
|
|
753
|
+
if args['plain']
|
|
754
|
+
# cmd = %{@deplate.formatter.plain_text(#{tx})}
|
|
755
|
+
cmd = lambda {|c, t| c.deplate.formatter.plain_text(t)}
|
|
756
|
+
specific = false
|
|
757
|
+
elsif args['native'] or args['ins']
|
|
758
|
+
cmd = tx
|
|
759
|
+
specific = true
|
|
760
|
+
else
|
|
761
|
+
# cmd = %{@deplate.parse_and_format(@container, #{tx}, false)}
|
|
762
|
+
cmd = lambda {|c, t| c.deplate.parse_and_format(c, t, false)}
|
|
763
|
+
specific = false
|
|
764
|
+
end
|
|
765
|
+
deplate.options.abbrevs[rs] = [tx, cmd]
|
|
766
|
+
rx = Regexp.new("^#{rs}")
|
|
767
|
+
# body = <<-EOR
|
|
768
|
+
# set_rx(#{rx.inspect})
|
|
769
|
+
# def setup
|
|
770
|
+
# @elt = #{cmd}
|
|
771
|
+
# end
|
|
772
|
+
# EOR
|
|
773
|
+
body = <<-EOR
|
|
774
|
+
set_rx(#{rx.inspect})
|
|
775
|
+
def setup
|
|
776
|
+
tx, cmd = @deplate.options.abbrevs[#{rs.inspect}]
|
|
777
|
+
case cmd
|
|
778
|
+
when Proc
|
|
779
|
+
tx = tx.call(self) if tx.kind_of?(Proc)
|
|
780
|
+
@elt = cmd.call(@container, tx)
|
|
781
|
+
when String
|
|
782
|
+
@elt = cmd
|
|
783
|
+
else
|
|
784
|
+
log(['Internal error', 'ABBREV', #{rs.inspect}, cmd.class], :error)
|
|
785
|
+
end
|
|
786
|
+
end
|
|
787
|
+
EOR
|
|
788
|
+
cls = Deplate::Cache.particle(deplate, body,
|
|
789
|
+
:register => true,
|
|
790
|
+
:specific => specific
|
|
791
|
+
)
|
|
642
792
|
else
|
|
643
|
-
|
|
644
|
-
specific = false
|
|
793
|
+
Deplate::Core.log(["No pattern specified", args], :error, src)
|
|
645
794
|
end
|
|
646
|
-
body = <<-EOR
|
|
647
|
-
@rx = /^#{rx}/
|
|
648
|
-
def setup
|
|
649
|
-
@elt = #{cmd}
|
|
650
|
-
end
|
|
651
|
-
EOR
|
|
652
|
-
cls = Deplate::Cache.particle(deplate, body,
|
|
653
|
-
:register => true,
|
|
654
|
-
:specific => specific
|
|
655
|
-
)
|
|
656
|
-
else
|
|
657
|
-
Deplate::Core.log(["No pattern specified", args], :error, src)
|
|
658
795
|
end
|
|
659
796
|
end
|
|
660
797
|
end
|
|
661
798
|
|
|
662
799
|
|
|
663
800
|
class Deplate::Command::MODULE < Deplate::Command
|
|
664
|
-
|
|
665
|
-
|
|
801
|
+
register_as 'MODULE'
|
|
802
|
+
register_as 'MOD'
|
|
666
803
|
class << self
|
|
667
804
|
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
668
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
805
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
669
806
|
deplate.require_module(text)
|
|
670
807
|
deplate.call_methods_matching(deplate, /^hook_late_require_/)
|
|
671
808
|
# deplate.initialize_particles(false, :always => true)
|
|
@@ -675,11 +812,11 @@ end
|
|
|
675
812
|
|
|
676
813
|
|
|
677
814
|
class Deplate::Command::LTX < Deplate::Command
|
|
678
|
-
|
|
679
|
-
|
|
815
|
+
register_as 'LTX'
|
|
816
|
+
register_as 'INLATEX'
|
|
680
817
|
class << self
|
|
681
818
|
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
682
|
-
Deplate::Core.log("%s: %s" % [cmd, text], :debug)
|
|
819
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
683
820
|
m = []
|
|
684
821
|
m[Deplate::Element::Region.rxi_name] = 'Ltx'
|
|
685
822
|
m[Deplate::Element::Region.rxi_args] = match[2]
|
|
@@ -691,3 +828,29 @@ class Deplate::Command::LTX < Deplate::Command
|
|
|
691
828
|
end
|
|
692
829
|
end
|
|
693
830
|
|
|
831
|
+
class Deplate::Element::PAGE < Deplate::Command
|
|
832
|
+
register_as 'PAGE'
|
|
833
|
+
class << self
|
|
834
|
+
def accumulate(src, array, deplate, text, match, args, cmd)
|
|
835
|
+
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
|
836
|
+
m = []
|
|
837
|
+
Deplate::Element::Break.accumulate(src, array, deplate, text, m)
|
|
838
|
+
end
|
|
839
|
+
end
|
|
840
|
+
end
|
|
841
|
+
|
|
842
|
+
class Deplate::Command::NOP < Deplate::Command
|
|
843
|
+
register_as 'NOP'
|
|
844
|
+
|
|
845
|
+
def setup_command
|
|
846
|
+
@embedable = false
|
|
847
|
+
end
|
|
848
|
+
|
|
849
|
+
def finish
|
|
850
|
+
return self
|
|
851
|
+
end
|
|
852
|
+
|
|
853
|
+
def process
|
|
854
|
+
end
|
|
855
|
+
end
|
|
856
|
+
|