deplate 0.8 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/AUTHORS.TXT +19 -16
- data/CHANGES.TXT +214 -248
- data/NEWS.TXT +47 -30
- data/README.TXT +0 -1
- data/TODO.TXT +93 -20
- data/VERSION.TXT +1 -1
- data/bin/deplate.exy +192 -0
- data/etc/deplate.ini +70 -9
- data/lib/action_view/helpers/deplate.rb +33 -33
- data/lib/deplate.rb +2 -2
- data/lib/deplate/bib.rb +72 -41
- data/lib/deplate/builtin.rb +1 -1
- data/lib/deplate/cache.rb +1 -1
- data/lib/deplate/commands.rb +161 -102
- data/lib/deplate/common.rb +93 -7
- data/lib/deplate/converter.rb +10 -4
- data/lib/deplate/core.rb +215 -108
- data/lib/deplate/counters.rb +23 -8
- data/lib/deplate/css/article.css +9 -5
- data/lib/deplate/css/deplate.css +37 -3
- data/lib/deplate/css/heading-navbar.css +1 -1
- data/lib/deplate/css/highstep.css +18 -0
- data/lib/deplate/css/htmldoc.css +43 -0
- data/lib/deplate/css/layout-deplate-print.css +1 -1
- data/lib/deplate/css/layout-deplate.css +1 -1
- data/lib/deplate/css/play.css +101 -0
- data/lib/deplate/css/sans-serif.css +1 -1
- data/lib/deplate/css/serif-e.css +1 -1
- data/lib/deplate/css/serif-rel.css +1 -1
- data/lib/deplate/css/serif.css +1 -1
- data/lib/deplate/css/slides.css +1 -1
- data/lib/deplate/css/styles.css +4 -0
- data/lib/deplate/css/tabbar-right.css +54 -8
- data/lib/deplate/css/tabbar-top.css +28 -9
- data/lib/deplate/css/text-sans-serif.css +1 -1
- data/lib/deplate/css/text-serif.css +1 -1
- data/lib/deplate/define.rb +71 -38
- data/lib/deplate/deplate-string.rb +3 -3
- data/lib/deplate/docbook.rb +9 -9
- data/lib/deplate/elements.rb +173 -84
- data/lib/deplate/etc.rb +6 -8
- data/lib/deplate/external.rb +9 -5
- data/lib/deplate/fmt/dbk-article-4.1.2.rb +4 -3
- data/lib/deplate/fmt/dbk-article.rb +9 -8
- data/lib/deplate/fmt/dbk-book.rb +4 -3
- data/lib/deplate/fmt/dbk-ref.rb +5 -4
- data/lib/deplate/fmt/dbk-slides.rb +4 -3
- data/lib/deplate/fmt/dbk-snippet.rb +4 -3
- data/lib/deplate/fmt/html-snippet.rb +1 -1
- data/lib/deplate/fmt/html.rb +186 -46
- data/lib/deplate/fmt/htmlsite.rb +19 -9
- data/lib/deplate/fmt/htmlslides.rb +1 -1
- data/lib/deplate/fmt/htmlwebsite.rb +1 -1
- data/lib/deplate/fmt/latex-dramatist.rb +175 -0
- data/lib/deplate/fmt/latex-snippet.rb +1 -1
- data/lib/deplate/fmt/latex.rb +132 -80
- data/lib/deplate/fmt/null.rb +1 -1
- data/lib/deplate/fmt/php.rb +1 -1
- data/lib/deplate/fmt/phpsite.rb +1 -1
- data/lib/deplate/fmt/plain.rb +16 -9
- data/lib/deplate/fmt/template.rb +1 -1
- data/lib/deplate/fmt/xhtml10t.rb +1 -1
- data/lib/deplate/formatter-snippet.rb +1 -1
- data/lib/deplate/formatter.rb +272 -81
- data/lib/deplate/guesslanguage.rb +57 -0
- data/lib/deplate/input.rb +205 -50
- data/lib/deplate/input/deplate-headings.rb +9 -11
- data/lib/deplate/input/deplate-restricted.rb +3 -23
- data/lib/deplate/input/deplate.rb +1 -1
- data/lib/deplate/input/play.rb +208 -0
- data/lib/deplate/input/rdoc.rb +37 -15
- data/lib/deplate/input/template.rb +6 -11
- data/lib/deplate/lib/Makefile.config +53 -4
- data/lib/deplate/lib/html/parbreak +3 -0
- data/lib/deplate/lib/javascript/StepwiseNextPage.js +8 -0
- data/lib/deplate/lib/javascript/StepwiseNextPage_confirm.js +8 -0
- data/lib/deplate/lib/latex/deplate.sty +36 -0
- data/lib/deplate/lib/latex/parbreak +6 -0
- data/lib/deplate/lib/php/page-comment.inc.php +5 -5
- data/lib/deplate/lib/plain/parbreak +6 -0
- data/lib/deplate/locale/de.latin1 +87 -15
- data/lib/deplate/locale/de.latin1_data +60 -0
- data/lib/deplate/locale/en.latin1_data +46 -0
- data/lib/deplate/locale/fr.latin1_data +74 -0
- data/lib/deplate/locale/ru.koi8-r_data +63 -0
- data/lib/deplate/locale/{zh_cn.gb2312 → zh_CN.GB2312} +0 -0
- data/lib/deplate/macros.rb +106 -32
- data/lib/deplate/messages.rb +22 -8
- data/lib/deplate/metadata.rb +1 -1
- data/lib/deplate/metadata/marshal.rb +1 -1
- data/lib/deplate/metadata/xml.rb +1 -1
- data/lib/deplate/metadata/yaml.rb +1 -1
- data/lib/deplate/mod/anyword.rb +4 -4
- data/lib/deplate/mod/babelfish.rb +1 -1
- data/lib/deplate/mod/code-gvim.rb +14 -8
- data/lib/deplate/mod/code-gvim71.rb +52 -0
- data/lib/deplate/mod/code-highlight.rb +35 -19
- data/lib/deplate/mod/colored-log.rb +1 -1
- data/lib/deplate/mod/endnotes.rb +1 -1
- data/lib/deplate/mod/guesslanguage.rb +75 -0
- data/lib/deplate/mod/html-asciimath.rb +1 -1
- data/lib/deplate/mod/html-deplate-button.rb +1 -1
- data/lib/deplate/mod/html-headings-navbar.rb +1 -1
- data/lib/deplate/mod/html-highstep.rb +43 -0
- data/lib/deplate/mod/html-jsmath.rb +1 -1
- data/lib/deplate/mod/html-obfuscate-email.rb +1 -1
- data/lib/deplate/mod/html-sidebar.rb +1 -1
- data/lib/deplate/mod/iconv.rb +1 -1
- data/lib/deplate/mod/imgurl.rb +1 -1
- data/lib/deplate/mod/inlatex-compound.rb +1 -1
- data/lib/deplate/mod/koma.rb +4 -4
- data/lib/deplate/mod/{de.rb → lang-de.rb} +1 -1
- data/lib/deplate/mod/{en.rb → lang-en.rb} +1 -1
- data/lib/deplate/mod/{ru_koi8-r.rb → lang-ru-koi8-r.rb} +1 -1
- data/lib/deplate/mod/lang-ru.rb +9 -0
- data/lib/deplate/mod/{zh-cn-autospace.rb → lang-zh_CN-autospace.rb} +3 -3
- data/lib/deplate/mod/{zh-cn.rb → lang-zh_CN.rb} +8 -8
- data/lib/deplate/mod/latex-emph-table-head.rb +1 -1
- data/lib/deplate/mod/latex-styles.rb +6 -6
- data/lib/deplate/mod/latex-verbatim-small.rb +1 -1
- data/lib/deplate/mod/linkmap.rb +128 -0
- data/lib/deplate/mod/makefile.rb +23 -22
- data/lib/deplate/mod/mark-external-urls.rb +13 -7
- data/lib/deplate/mod/markup-1-warn.rb +1 -1
- data/lib/deplate/mod/markup-1.rb +1 -1
- data/lib/deplate/mod/navbar-png.rb +5 -4
- data/lib/deplate/mod/noindent.rb +1 -1
- data/lib/deplate/mod/numpara.rb +1 -1
- data/lib/deplate/mod/particle-math.rb +1 -1
- data/lib/deplate/mod/php-extra.rb +1 -1
- data/lib/deplate/mod/pstoedit.rb +1 -1
- data/lib/deplate/mod/recode.rb +1 -1
- data/lib/deplate/mod/smart-dash.rb +1 -1
- data/lib/deplate/mod/smiley.rb +1 -1
- data/lib/deplate/mod/soffice.rb +1 -1
- data/lib/deplate/mod/symbols-latin1.rb +1 -1
- data/lib/deplate/mod/symbols-od-utf-8.rb +1 -1
- data/lib/deplate/mod/symbols-plain.rb +1 -1
- data/lib/deplate/mod/symbols-sgml.rb +1 -1
- data/lib/deplate/mod/symbols-utf-8.rb +1 -1
- data/lib/deplate/mod/symbols-xml.rb +1 -1
- data/lib/deplate/mod/syntax-region-alt.rb +1 -1
- data/lib/deplate/mod/utf8.rb +1 -1
- data/lib/deplate/mod/validate-html.rb +1 -1
- data/lib/deplate/mod/xmlrpc.rb +37 -36
- data/lib/deplate/nukumi2.rb +4 -4
- data/lib/deplate/once-method.rb +1 -1
- data/lib/deplate/output.rb +12 -4
- data/lib/deplate/particles.rb +52 -22
- data/lib/deplate/regions.rb +160 -90
- data/lib/deplate/skeletons.rb +4 -3
- data/lib/deplate/structured.rb +19 -13
- data/lib/deplate/template.rb +17 -9
- data/lib/deplate/templates/html-doc.html +8 -11
- data/lib/deplate/templates/html-tabbar-right.html +1 -1
- data/lib/deplate/templates/html-tabbar-top.html +3 -3
- data/lib/deplate/variables.rb +25 -9
- data/lib/deplate/wiki-markup.rb +14 -3
- data/lib/deplate/xml.rb +3 -4
- data/lib/deplate/{zh-cn.rb → zh_CN.rb} +16 -16
- data/man/man1/deplate.1 +80 -65
- metadata +72 -48
- data/lib/deplate/mod/fr.rb +0 -46
data/lib/deplate/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
|