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
data/lib/deplate/mod/markup-1.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# textstyles1.rb -- Re-enable text styles markup prior to version 0.6
|
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: 03-Okt-2004.
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# mod-navbar1.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: 14-Aug-2004.
|
6
|
-
# @Last Change: 04-
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2007-04-04.
|
7
|
+
# @Revision: 0.78
|
8
8
|
#
|
9
9
|
# Description:
|
10
10
|
#
|
@@ -39,7 +39,8 @@ class Deplate::Formatter::HTML_Site
|
|
39
39
|
hiimg = hi ? "hi-#{img}" : nil
|
40
40
|
alt = button.capitalize
|
41
41
|
@deplate.variables["#{button}Button"] = include_image(nil,
|
42
|
-
img_url(img),
|
42
|
+
# img_url(img),
|
43
|
+
img,
|
43
44
|
{'hi' => hiimg, 'alt' => alt, 'id' => btn, :raw => true},
|
44
45
|
true
|
45
46
|
)
|
data/lib/deplate/mod/noindent.rb
CHANGED
data/lib/deplate/mod/numpara.rb
CHANGED
data/lib/deplate/mod/pstoedit.rb
CHANGED
data/lib/deplate/mod/recode.rb
CHANGED
data/lib/deplate/mod/smiley.rb
CHANGED
data/lib/deplate/mod/soffice.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# mod-soffice.rb - Some OpenOffice specific modifications to the html output
|
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: 27-Jun-2004.
|
data/lib/deplate/mod/utf8.rb
CHANGED
data/lib/deplate/mod/xmlrpc.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# xmlrpc.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: 27-J�n-2005.
|
6
|
-
# @Last Change:
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2007-06-30.
|
7
|
+
# @Revision: 0.247
|
8
8
|
#
|
9
9
|
# = Description
|
10
10
|
#
|
@@ -34,9 +34,9 @@ require 'xmlrpc/server'
|
|
34
34
|
|
35
35
|
class Deplate::Core
|
36
36
|
def go_now
|
37
|
-
@variables[
|
37
|
+
@variables['xmlrpcID'] ||= 'deplate'
|
38
38
|
@xmlrpc_converters = {}
|
39
|
-
@xmlrpc_timeout = @variables[
|
39
|
+
@xmlrpc_timeout = @variables['xmlrpcTimeout']
|
40
40
|
if @xmlrpc_timeout
|
41
41
|
@xmlrpc_timeout = @xmlrpc_timeout.to_i
|
42
42
|
else
|
@@ -44,22 +44,22 @@ class Deplate::Core
|
|
44
44
|
end
|
45
45
|
|
46
46
|
xml_servlet = XMLRPC::WEBrickServlet.new
|
47
|
-
xml_servlet.add_handler(
|
47
|
+
xml_servlet.add_handler('convert') do |format, text|
|
48
48
|
xmlrpc_convert_string(format, text)
|
49
49
|
end
|
50
|
-
xml_servlet.add_handler(
|
50
|
+
xml_servlet.add_handler('shutdown') do |code|
|
51
51
|
xmlrpc_shutdown(code)
|
52
52
|
end
|
53
|
-
xml_servlet.add_handler(
|
53
|
+
xml_servlet.add_handler('convert_string') do |format, text|
|
54
54
|
xmlrpc_convert_string(format, text)
|
55
55
|
end
|
56
|
-
xml_servlet.add_handler(
|
56
|
+
xml_servlet.add_handler('convert_file') do |format, filename|
|
57
57
|
xmlrpc_convert_file(format, filename)
|
58
58
|
end
|
59
|
-
xml_servlet.add_handler(
|
59
|
+
xml_servlet.add_handler('string_to_fileset') do |format, filename, text|
|
60
60
|
xmlrpc_string_to_fileset(format, filename, text)
|
61
61
|
end
|
62
|
-
xml_servlet.add_handler(
|
62
|
+
xml_servlet.add_handler('fileset_to_fileset') do |format, filename, fileset|
|
63
63
|
xmlrpc_fileset_to_fileset(format, filename, fileset)
|
64
64
|
end
|
65
65
|
xml_servlet.add_multicall
|
@@ -67,18 +67,18 @@ class Deplate::Core
|
|
67
67
|
uri = URI.parse(@sources.first) || OpenStruct.new
|
68
68
|
port = uri.port
|
69
69
|
unless port
|
70
|
-
port = @variables[
|
70
|
+
port = @variables['xmlrpcPort']
|
71
71
|
port = port ? port.to_i : 2000
|
72
72
|
end
|
73
73
|
|
74
74
|
path = uri.path
|
75
|
-
if !path or path ==
|
76
|
-
path = @variables[
|
75
|
+
if !path or path == '-'
|
76
|
+
path = @variables['xmlrpcPath'] || '/deplate'
|
77
77
|
end
|
78
78
|
|
79
|
-
valid_ips = @variables[
|
79
|
+
valid_ips = @variables['xmlrpcAllow']
|
80
80
|
if valid_ips
|
81
|
-
valid_ips =
|
81
|
+
valid_ips = Deplate::Core.split_list(valid_ips, ',', ' ')
|
82
82
|
valid_ips.collect! do |s|
|
83
83
|
if s =~ /^\d+\.\d+\.\d+\.\d+\$/
|
84
84
|
s = Regexp.escape(s)
|
@@ -88,13 +88,13 @@ class Deplate::Core
|
|
88
88
|
set_valid_ip(valid_ips)
|
89
89
|
end
|
90
90
|
|
91
|
-
log(
|
91
|
+
log('XMLRPC: Starting server', :anyway)
|
92
92
|
# @@log_destination = File.open(@variables["logFile"] || "deplate.log", "w")
|
93
93
|
begin
|
94
94
|
@xmlrpc_server = WEBrick::HTTPServer.new(:Port => port)
|
95
95
|
@xmlrpc_server.mount(path, xml_servlet)
|
96
96
|
@xmlrpc_server.logger.level = 1
|
97
|
-
trap(
|
97
|
+
trap('INT') { @xmlrpc_server.shutdown }
|
98
98
|
@xmlrpc_server.start
|
99
99
|
ensure
|
100
100
|
# @@log_destination.close
|
@@ -138,7 +138,7 @@ class Deplate::Core
|
|
138
138
|
def xmlrpc_fileset_to_fileset(format, filename, fileset)
|
139
139
|
convert_to_fileset(filename) do
|
140
140
|
definition = fileset.delete(filename)
|
141
|
-
text = definition[
|
141
|
+
text = definition['contents']
|
142
142
|
convert_and_collect(format, filename, text) do
|
143
143
|
write_fileset(fileset)
|
144
144
|
end
|
@@ -148,17 +148,17 @@ class Deplate::Core
|
|
148
148
|
private
|
149
149
|
def convert_to_fileset(fileset_id, &block)
|
150
150
|
unless defined?(@tmpdir)
|
151
|
-
@tmpdir = @variables[
|
151
|
+
@tmpdir = @variables['tmpDir']
|
152
152
|
unless @tmpdir
|
153
153
|
if Dir.tmpdir
|
154
|
-
@tmpdir = File.join(Dir.tmpdir, @variables[
|
154
|
+
@tmpdir = File.join(Dir.tmpdir, @variables['xmlrpcID'], fileset_id)
|
155
155
|
end
|
156
156
|
end
|
157
|
-
@lockdir = File.join(Dir.tmpdir,
|
157
|
+
@lockdir = File.join(Dir.tmpdir,'deplate_locks')
|
158
158
|
end
|
159
159
|
if @tmpdir
|
160
160
|
if File.exists?(@tmpdir)
|
161
|
-
FileUtils.rm(Dir[File.join(@tmpdir,
|
161
|
+
FileUtils.rm(Dir[File.join(@tmpdir, '*')])
|
162
162
|
else
|
163
163
|
FileUtils.mkdir(@tmpdir)
|
164
164
|
end
|
@@ -169,11 +169,11 @@ class Deplate::Core
|
|
169
169
|
if File.exists?(lockfile)
|
170
170
|
timeout = File.mtime(lockfile) + @xmlrpc_timeout
|
171
171
|
if timeout > Time.now
|
172
|
-
log([
|
172
|
+
log(['XMLRPC: Fileset is locked', fileset_id, timeout], :error)
|
173
173
|
raise FaultException
|
174
174
|
end
|
175
175
|
end
|
176
|
-
File.open(lockfile,
|
176
|
+
File.open(lockfile, 'w') {|io|}
|
177
177
|
begin
|
178
178
|
Dir.chdir(@tmpdir)
|
179
179
|
return block.call
|
@@ -182,7 +182,7 @@ class Deplate::Core
|
|
182
182
|
FileUtils.rm(lockfile)
|
183
183
|
end
|
184
184
|
else
|
185
|
-
log(
|
185
|
+
log('XMLRPC: No writable temporary directory', :error)
|
186
186
|
raise FaultException
|
187
187
|
end
|
188
188
|
end
|
@@ -197,33 +197,34 @@ class Deplate::Core
|
|
197
197
|
def write_fileset(fileset)
|
198
198
|
for fname, definition in fileset
|
199
199
|
if File.exists?(fname)
|
200
|
-
changed = definition[
|
201
|
-
mtime = definition[
|
202
|
-
size = definition[
|
200
|
+
changed = definition['changed']
|
201
|
+
mtime = definition['mtime']
|
202
|
+
size = definition['size']
|
203
203
|
if !changed and mtime and size and mtime == File.mtime(fname) and size == File.size(fname)
|
204
204
|
next
|
205
205
|
end
|
206
206
|
end
|
207
207
|
fname = @formatter.encode_id(fname)
|
208
|
-
contents = definition[
|
209
|
-
File.open(fname,
|
208
|
+
contents = definition['contents']
|
209
|
+
File.open(fname, 'w') {|io| io.puts(contents)}
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
213
213
|
def collect_fileset(hash)
|
214
|
-
for f in Dir[
|
214
|
+
for f in Dir['*']
|
215
215
|
f = @formatter.encode_id(f)
|
216
216
|
definition = {}
|
217
|
-
definition[
|
218
|
-
definition[
|
219
|
-
definition[
|
217
|
+
definition['mtime'] = File.mtime(f)
|
218
|
+
definition['size'] = File.size(f)
|
219
|
+
definition['contents'] = File.open(f) {|io| io.read}
|
220
220
|
hash[f] = definition
|
221
221
|
end
|
222
222
|
end
|
223
223
|
|
224
224
|
def get_converter(format)
|
225
|
-
if @variables[
|
225
|
+
if @variables['xmlrpcReuseInterpreter']
|
226
226
|
cvt = @xmlrpc_converters[format] ||= Deplate::Converter.new(format, :master => self)
|
227
|
+
# p "DBG deplate=#{cvt.object_id} #{@xmlrpc_converters[format].object_id}"
|
227
228
|
else
|
228
229
|
cvt = Deplate::Converter.new(format, :master => self)
|
229
230
|
end
|
data/lib/deplate/nukumi2.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# nukumi2.rb
|
2
|
-
# @Author: Thomas Link (
|
2
|
+
# @Author: Thomas Link (micathom AT gmail com)
|
3
3
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
4
4
|
# @Created: 31-Dez-2005.
|
5
|
-
# @Last Change:
|
6
|
-
# @Revision: 0.
|
5
|
+
# @Last Change: 2007-06-30.
|
6
|
+
# @Revision: 0.34
|
7
7
|
#
|
8
8
|
# = Usage
|
9
9
|
# Add require 'deplate/nukumi2' to your nukumi2 config.rb.
|
@@ -50,7 +50,7 @@ class FileBackend
|
|
50
50
|
if value
|
51
51
|
case field
|
52
52
|
when 'keywords'
|
53
|
-
entry.categories.concat
|
53
|
+
entry.categories.concat Deplate::Core.split_list(value, ';', ',')
|
54
54
|
when 'encoding'
|
55
55
|
else
|
56
56
|
if entry.respond_to? field + "="
|
data/lib/deplate/once-method.rb
CHANGED
data/lib/deplate/output.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# output.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: 04-Dez-2004.
|
6
|
-
# @Last Change:
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2007-09-01.
|
7
|
+
# @Revision: 0.265
|
8
8
|
|
9
9
|
require 'forwardable'
|
10
10
|
require 'deplate/metadata'
|
@@ -72,8 +72,16 @@ class Deplate::Output
|
|
72
72
|
end
|
73
73
|
@top_heading = nil
|
74
74
|
@body_empty_done = false
|
75
|
+
reset
|
75
76
|
end
|
76
77
|
|
78
|
+
def reset
|
79
|
+
@attributes[:stepwiseIdx] = 0
|
80
|
+
@attributes[:consumed_labels] = []
|
81
|
+
@attributes[:consumed_ids] = []
|
82
|
+
end
|
83
|
+
alias :simulate_reset :reset
|
84
|
+
|
77
85
|
def body_flush
|
78
86
|
call_methods_matching(@formatter, /^hook_pre_body_flush_/)
|
79
87
|
save!
|
@@ -149,7 +157,7 @@ class Deplate::Output
|
|
149
157
|
|
150
158
|
def fill_in_template(template_file)
|
151
159
|
unless do_i_feel_empty?
|
152
|
-
t = Deplate::Template.new(:file => template_file)
|
160
|
+
t = Deplate::Template.new(:file => template_file, :master => @deplate)
|
153
161
|
@output = t.fill_in(@deplate,
|
154
162
|
:pre => @pre_matter,
|
155
163
|
:body => @body,
|
data/lib/deplate/particles.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# particles.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: 24-M�r-2004.
|
6
|
-
# @Last Change:
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2007-09-29.
|
7
|
+
# @Revision: 0.1922
|
8
8
|
|
9
9
|
require "uri"
|
10
10
|
require "deplate/common"
|
@@ -47,6 +47,15 @@ class Deplate::Particle < Deplate::BaseParticle
|
|
47
47
|
@@particles << c
|
48
48
|
end
|
49
49
|
|
50
|
+
def replace_particle(other, c=self)
|
51
|
+
i = @@particles.index(other)
|
52
|
+
if i
|
53
|
+
@@particles[i] = c
|
54
|
+
else
|
55
|
+
register_particle c
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
50
59
|
def disable_particle(*particles)
|
51
60
|
particles.each {|p| @@particles.delete(p)}
|
52
61
|
end
|
@@ -171,9 +180,11 @@ class Deplate::Particle::Text < Deplate::Particle
|
|
171
180
|
[text]
|
172
181
|
end
|
173
182
|
end
|
183
|
+
|
174
184
|
def process
|
175
185
|
@elt = plain_text(get_text)
|
176
186
|
end
|
187
|
+
|
177
188
|
def get_text
|
178
189
|
@match[0]
|
179
190
|
end
|
@@ -433,8 +444,13 @@ class Deplate::HyperLink < Deplate::Particle
|
|
433
444
|
#
|
434
445
|
# +++ the heuristic is fragile and sometimes gives wrong results
|
435
446
|
def complete_wiki_ref(inter, name, dest, anchor)
|
447
|
+
src = @container.source.file || ''
|
436
448
|
sfx = @deplate.variables['suffix']
|
437
|
-
|
449
|
+
if sfx
|
450
|
+
sfx = '.%s' % sfx
|
451
|
+
elsif @deplate.variables['useParentSuffix']
|
452
|
+
sfx = File.extname(src)
|
453
|
+
end
|
438
454
|
if dest.empty?
|
439
455
|
label = guess_label(dest, anchor)
|
440
456
|
if label
|
@@ -472,7 +488,6 @@ class Deplate::HyperLink < Deplate::Particle
|
|
472
488
|
return :wiki, name, dest, label
|
473
489
|
end
|
474
490
|
# Fallback heuristic
|
475
|
-
src = @container.source.file || ''
|
476
491
|
dest_sfx = File.extname(dest)
|
477
492
|
dest_abs = File.expand_path(dest, File.basename(src))
|
478
493
|
dest_is_dir = (File.exist?(dest_abs) and File.stat(dest_abs).directory?)
|
@@ -488,35 +503,31 @@ class Deplate::HyperLink < Deplate::Particle
|
|
488
503
|
def indexing(idx)
|
489
504
|
idx = idx.compact
|
490
505
|
unless @deplate.variables['indexwiki'] == 'no' or idx.empty?
|
491
|
-
|
492
|
-
|
493
|
-
|
506
|
+
if @deplate.variables['autoindex']
|
507
|
+
for i in idx
|
508
|
+
Deplate::Particle.auto_indexing(@deplate, i)
|
509
|
+
end
|
494
510
|
end
|
495
511
|
@idx = idx
|
496
512
|
else
|
497
513
|
@idx = nil
|
498
514
|
end
|
499
515
|
end
|
500
|
-
|
516
|
+
|
501
517
|
def process
|
502
518
|
type, name, dest, anchor = complete_wiki_ref(@inter, *@elt)
|
503
519
|
if type
|
504
520
|
dest.gsub!(/\\/, '/')
|
505
521
|
dest = encode_dest(dest)
|
506
522
|
anchor = encode_anchor(anchor)
|
507
|
-
|
508
|
-
if dest =~ /^mailto:/
|
509
|
-
@styles << 'mailto'
|
510
|
-
else
|
511
|
-
@styles << 'remote'
|
512
|
-
end
|
513
|
-
end
|
523
|
+
set_style(dest)
|
514
524
|
case type
|
515
525
|
when :wiki
|
516
526
|
@elt = format_particle(:format_wiki, self, name, dest, anchor)
|
517
527
|
when :url
|
518
528
|
@elt = format_particle(:format_url, self, name, dest, anchor)
|
519
529
|
end
|
530
|
+
# p "DBG", dest, type, @styles, @elt
|
520
531
|
if @idx
|
521
532
|
@idx.collect! do |idx|
|
522
533
|
format_particle(:format_index, self, idx)
|
@@ -527,6 +538,16 @@ class Deplate::HyperLink < Deplate::Particle
|
|
527
538
|
end
|
528
539
|
|
529
540
|
protected
|
541
|
+
def set_style(dest)
|
542
|
+
if dest =~ Deplate::HyperLink::Url.rx
|
543
|
+
if dest =~ /^mailto:/
|
544
|
+
@styles << 'mailto'
|
545
|
+
else
|
546
|
+
@styles << 'remote'
|
547
|
+
end
|
548
|
+
end
|
549
|
+
end
|
550
|
+
|
530
551
|
# Escape special characters from path
|
531
552
|
def encode_path(path)
|
532
553
|
path = path.split(Regexp.new(Regexp.escape(File::SEPARATOR)))
|
@@ -569,7 +590,7 @@ class Deplate::HyperLink::Extended < Deplate::HyperLink
|
|
569
590
|
def setup
|
570
591
|
# @rx = /^\[\[([^\]#]*)(#(#{@@bc}))?\](\[(.+?)\])?([-!~*]*)\]/
|
571
592
|
# @rx = /^\[\[([^\]#]*)(#([^\]]*))?\](\[(.+?)\])?([-!~*]*)\]/
|
572
|
-
set_rx(/^\[\[(([#{@@uc}]+?)::)?([^\]#]*)(#([^\]]*))?\](\[(.+?)\])?([
|
593
|
+
set_rx(/^\[\[(([#{@@uc}]+?)::)?([^\]#]*)(#([^\]]*))?\](\[(.+?)\])?([-!~*$]*)\]/)
|
573
594
|
end
|
574
595
|
end
|
575
596
|
|
@@ -590,14 +611,18 @@ class Deplate::HyperLink::Extended < Deplate::HyperLink
|
|
590
611
|
id = @name
|
591
612
|
else
|
592
613
|
if !@dest or @dest.empty?
|
593
|
-
@name = @anchor
|
594
|
-
id = @anchor
|
614
|
+
@name = @anchor || @inter
|
615
|
+
id = @anchor || @inter
|
595
616
|
else
|
596
617
|
@name = @dest
|
597
618
|
id = File.basename(@dest)
|
598
619
|
end
|
599
620
|
end
|
600
|
-
|
621
|
+
if id
|
622
|
+
idx = [@deplate.add_index(self, id)]
|
623
|
+
else
|
624
|
+
idx = []
|
625
|
+
end
|
601
626
|
else
|
602
627
|
idx = []
|
603
628
|
end
|
@@ -609,6 +634,9 @@ class Deplate::HyperLink::Extended < Deplate::HyperLink
|
|
609
634
|
if @modifier.include?('*')
|
610
635
|
@args['target'] = '_blank'
|
611
636
|
end
|
637
|
+
if @modifier.include?('$')
|
638
|
+
@args['rel'] = 'nofollow'
|
639
|
+
end
|
612
640
|
end
|
613
641
|
|
614
642
|
def process
|
@@ -733,6 +761,7 @@ class Deplate::HyperLink::Url < Deplate::HyperLink
|
|
733
761
|
|
734
762
|
def process
|
735
763
|
@name = plain_text(@name)
|
764
|
+
set_style(@dest)
|
736
765
|
@elt = format_particle(:format_url, self, @name, @dest, @anchor)
|
737
766
|
end
|
738
767
|
end
|
@@ -763,6 +792,7 @@ class Deplate::Particle::Macro < Deplate::Particle
|
|
763
792
|
@elt = plain_text(@match[0], false)
|
764
793
|
else
|
765
794
|
@macro, args, text = split_name_args(macro)
|
795
|
+
args = args.merge(deplate.variables["args@#{@macro}"] || {})
|
766
796
|
# args[:macro] = macro
|
767
797
|
if @macro
|
768
798
|
@elt = Deplate::Macro.exec(@deplate, @container, @context, @macro, args, @alt, text)
|
@@ -803,7 +833,7 @@ class Deplate::Particle::Macro < Deplate::Particle
|
|
803
833
|
nil
|
804
834
|
end
|
805
835
|
end
|
806
|
-
|
836
|
+
|
807
837
|
def process
|
808
838
|
@elt = case @elt
|
809
839
|
when String
|
@@ -825,7 +855,7 @@ class Deplate::Particle::CurlyBrace < Deplate::Particle
|
|
825
855
|
def process
|
826
856
|
sample_pre = @last[-10..-1]
|
827
857
|
sample_post = @rest[0..9]
|
828
|
-
Deplate::Core.log(["
|
858
|
+
Deplate::Core.log(["Character should be preceded by a backslash", "%s>>%s<<%s" % [sample_pre, @match[0], sample_post]], :error, @container.source)
|
829
859
|
@elt = plain_text(@match[0], false)
|
830
860
|
end
|
831
861
|
end
|