deplate 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS.TXT +26 -0
- data/CHANGES.TXT +177 -0
- data/LICENSE.TXT +340 -0
- data/NEWS.TXT +29 -0
- data/README.TXT +86 -0
- data/TODO.TXT +202 -0
- data/VERSION.TXT +1 -0
- data/bin/deplate +3 -0
- data/bin/deplate.bat +2 -0
- data/etc/deplate.ini +361 -0
- data/lib/deplate.rb +31 -0
- data/lib/deplate/abstract-class.rb +30 -0
- data/lib/deplate/builtin.rb +11 -0
- data/lib/deplate/cache.rb +59 -0
- data/lib/deplate/commands.rb +693 -0
- data/lib/deplate/common.rb +335 -0
- data/lib/deplate/converter.rb +99 -0
- data/lib/deplate/core.rb +2705 -0
- data/lib/deplate/css/article.css +545 -0
- data/lib/deplate/css/deplate.css +699 -0
- data/lib/deplate/css/heading-navbar.css +29 -0
- data/lib/deplate/css/layout-deplate-print.css +540 -0
- data/lib/deplate/css/layout-deplate.css +764 -0
- data/lib/deplate/css/sans-serif.css +160 -0
- data/lib/deplate/css/serif-e.css +170 -0
- data/lib/deplate/css/serif-rel.css +121 -0
- data/lib/deplate/css/serif.css +190 -0
- data/lib/deplate/css/slides.css +11 -0
- data/lib/deplate/css/tabbar-left.css +91 -0
- data/lib/deplate/css/tabbar-right-ie.css +14 -0
- data/lib/deplate/css/tabbar-right.css +118 -0
- data/lib/deplate/css/tabbar-top.css +64 -0
- data/lib/deplate/css/tabbar.css +81 -0
- data/lib/deplate/css/text-sans-serif.css +154 -0
- data/lib/deplate/css/text-serif.css +175 -0
- data/lib/deplate/define.rb +439 -0
- data/lib/deplate/docbook.rb +738 -0
- data/lib/deplate/elements.rb +1355 -0
- data/lib/deplate/etc.rb +199 -0
- data/lib/deplate/external.rb +135 -0
- data/lib/deplate/fmt/dbk-article-4.1.2.rb +21 -0
- data/lib/deplate/fmt/dbk-article.rb +46 -0
- data/lib/deplate/fmt/dbk-book.rb +46 -0
- data/lib/deplate/fmt/dbk-ref.rb +105 -0
- data/lib/deplate/fmt/dbk-slides.rb +47 -0
- data/lib/deplate/fmt/dbk-snippet.rb +21 -0
- data/lib/deplate/fmt/html-snippet.rb +21 -0
- data/lib/deplate/fmt/html.rb +1696 -0
- data/lib/deplate/fmt/htmlsite.rb +419 -0
- data/lib/deplate/fmt/htmlslides.rb +21 -0
- data/lib/deplate/fmt/htmlwebsite.rb +70 -0
- data/lib/deplate/fmt/latex-snippet.rb +22 -0
- data/lib/deplate/fmt/latex.rb +1242 -0
- data/lib/deplate/fmt/php.rb +19 -0
- data/lib/deplate/fmt/phpsite.rb +19 -0
- data/lib/deplate/fmt/plain.rb +598 -0
- data/lib/deplate/fmt/template.rb +34 -0
- data/lib/deplate/fmt/xhtml10t.rb +41 -0
- data/lib/deplate/formatter-snippet.rb +17 -0
- data/lib/deplate/formatter.rb +1210 -0
- data/lib/deplate/input.rb +492 -0
- data/lib/deplate/input/deplate-headings.rb +48 -0
- data/lib/deplate/input/deplate-restricted.rb +70 -0
- data/lib/deplate/input/deplate.rb +28 -0
- data/lib/deplate/input/rdoc.rb +277 -0
- data/lib/deplate/input/template.rb +29 -0
- data/lib/deplate/lib/latex/highlight-extra.sty +15 -0
- data/lib/deplate/lib/latex/highlight-typical.sty +15 -0
- data/lib/deplate/lib/tabmenu.js +146 -0
- data/lib/deplate/locale/de.latin1 +708 -0
- data/lib/deplate/locale/ru.koi8-r +48 -0
- data/lib/deplate/locale/zh_cn.gb2312 +35 -0
- data/lib/deplate/macros.rb +639 -0
- data/lib/deplate/messages.rb +120 -0
- data/lib/deplate/metadata.rb +77 -0
- data/lib/deplate/metadata/marshal.rb +24 -0
- data/lib/deplate/metadata/xml.rb +42 -0
- data/lib/deplate/metadata/yaml.rb +26 -0
- data/lib/deplate/mod/anyword.rb +56 -0
- data/lib/deplate/mod/babelfish.rb +27 -0
- data/lib/deplate/mod/code-gvim.rb +52 -0
- data/lib/deplate/mod/code-highlight.rb +91 -0
- data/lib/deplate/mod/colored-log.rb +17 -0
- data/lib/deplate/mod/de.rb +19 -0
- data/lib/deplate/mod/en.rb +17 -0
- data/lib/deplate/mod/endnotes.rb +60 -0
- data/lib/deplate/mod/fr.rb +46 -0
- data/lib/deplate/mod/html-asciimath.rb +40 -0
- data/lib/deplate/mod/html-deplate-button.rb +15 -0
- data/lib/deplate/mod/html-headings-navbar.rb +39 -0
- data/lib/deplate/mod/html-obfuscate-email.rb +47 -0
- data/lib/deplate/mod/html-sidebar.rb +232 -0
- data/lib/deplate/mod/htmlslides-navbar-fh.rb +32 -0
- data/lib/deplate/mod/iconv.rb +35 -0
- data/lib/deplate/mod/imgurl.rb +30 -0
- data/lib/deplate/mod/inlatex-compound.rb +69 -0
- data/lib/deplate/mod/koma.rb +109 -0
- data/lib/deplate/mod/latex-emph-table-head.rb +38 -0
- data/lib/deplate/mod/latex-styles.rb +461 -0
- data/lib/deplate/mod/latex-verbatim-small.rb +29 -0
- data/lib/deplate/mod/makefile.rb +194 -0
- data/lib/deplate/mod/mark-external-urls.rb +38 -0
- data/lib/deplate/mod/markup-1-warn.rb +37 -0
- data/lib/deplate/mod/markup-1.rb +41 -0
- data/lib/deplate/mod/navbar-png.rb +33 -0
- data/lib/deplate/mod/noindent.rb +32 -0
- data/lib/deplate/mod/numpara.rb +40 -0
- data/lib/deplate/mod/particle-math.rb +34 -0
- data/lib/deplate/mod/php-extra.rb +44 -0
- data/lib/deplate/mod/pstoedit.rb +71 -0
- data/lib/deplate/mod/recode.rb +57 -0
- data/lib/deplate/mod/ru_koi8-r.rb +20 -0
- data/lib/deplate/mod/smiley.rb +50 -0
- data/lib/deplate/mod/soffice.rb +23 -0
- data/lib/deplate/mod/symbols-latin1.rb +58 -0
- data/lib/deplate/mod/symbols-od-utf-8.rb +16 -0
- data/lib/deplate/mod/symbols-plain.rb +58 -0
- data/lib/deplate/mod/symbols-sgml.rb +97 -0
- data/lib/deplate/mod/symbols-utf-8.rb +81 -0
- data/lib/deplate/mod/symbols-xml.rb +34 -0
- data/lib/deplate/mod/syntax-region-alt.rb +37 -0
- data/lib/deplate/mod/utf8.rb +49 -0
- data/lib/deplate/mod/validate-html.rb +35 -0
- data/lib/deplate/mod/xmlrpc.rb +233 -0
- data/lib/deplate/mod/zh-cn-autospace.rb +108 -0
- data/lib/deplate/mod/zh-cn.rb +59 -0
- data/lib/deplate/once-method.rb +44 -0
- data/lib/deplate/output.rb +249 -0
- data/lib/deplate/particles.rb +815 -0
- data/lib/deplate/regions.rb +1076 -0
- data/lib/deplate/structured.rb +763 -0
- data/lib/deplate/template.rb +430 -0
- data/lib/deplate/templates/html-doc.html +28 -0
- data/lib/deplate/templates/html-left-tabbar-js.html +37 -0
- data/lib/deplate/templates/html-left-tabbar.html +31 -0
- data/lib/deplate/templates/html-tabbar-right-table.html +43 -0
- data/lib/deplate/templates/html-tabbar-right.html +23 -0
- data/lib/deplate/templates/html-tabbar-top.html +43 -0
- data/lib/deplate/templates/html-tabbar.html +31 -0
- data/lib/deplate/wiki-markup.rb +117 -0
- data/lib/deplate/xml.rb +109 -0
- data/lib/deplate/zh-cn.rb +59 -0
- data/lib/ps2ppm.rb +239 -0
- data/man/man1/deplate.1 +692 -0
- metadata +210 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
# colored-log.rb
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 05-Mai-2005.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.2
|
8
|
+
#
|
9
|
+
# = Description
|
10
|
+
# Enable colored log output
|
11
|
+
|
12
|
+
class Deplate::Core
|
13
|
+
def self.user_setup(options)
|
14
|
+
enable_color(options)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# mod-en.rb -- Standard messages
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 07-Mai-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.79
|
8
|
+
|
9
|
+
require 'deplate/messages'
|
10
|
+
|
11
|
+
# German message catalog.
|
12
|
+
class Deplate::Messages::De < Deplate::Messages
|
13
|
+
setup 'de'
|
14
|
+
def_prop 'lang', 'de'
|
15
|
+
def_prop 'latex_lang', 'german'
|
16
|
+
def_prop 'latex_lang_cmd', %{\\usepackage{german}}
|
17
|
+
load_catalog 'de.latin1'
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# mod-en.rb -- Standard messages
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 07-Mai-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.44
|
8
|
+
|
9
|
+
require 'deplate/messages'
|
10
|
+
|
11
|
+
# Proxy class for english messages
|
12
|
+
class Deplate::Messages::En < Deplate::Messages
|
13
|
+
setup 'en'
|
14
|
+
def_prop 'lang', 'en'
|
15
|
+
def_prop 'latex_lang', 'english'
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# endnotes.rb -- display endnotes instead of footnotes
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 20-Aug-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.85
|
8
|
+
|
9
|
+
|
10
|
+
class Deplate::Formatter
|
11
|
+
def setup_endnotes
|
12
|
+
@deplate.set_slot_name(:footnotes, false)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Deplate::Formatter::LaTeX
|
17
|
+
def prepare_endnotes
|
18
|
+
output_at(:pre, :mod_packages, "\\usepackage{endnotes}")
|
19
|
+
notes = plain_text(@deplate.msg("Notes"))
|
20
|
+
if notes != "Notes"
|
21
|
+
output_at(:pre, :mod_head, "\\renewcommand{\\notesname}{#{notes}}")
|
22
|
+
end
|
23
|
+
output_at(:pre, :mod_head, "\\let\\footnote=\\endnote")
|
24
|
+
end
|
25
|
+
|
26
|
+
def format_list_of_endnotes(invoker)
|
27
|
+
join_blocks(["\\newpage", "\\begingroup",
|
28
|
+
"\\parindent 0pt", "\\parskip 2ex",
|
29
|
+
"\\def\\enotesize{\\normalsize}", "\\theendnotes",
|
30
|
+
"\\endgroup"])
|
31
|
+
end
|
32
|
+
alias format_list_of_footnotes format_list_of_endnotes
|
33
|
+
end
|
34
|
+
|
35
|
+
class Deplate::Formatter::HTML
|
36
|
+
def format_list_of_endnotes(invoker)
|
37
|
+
title = plain_text(@deplate.msg("Notes"))
|
38
|
+
acc = []
|
39
|
+
acc << %{<div class="endnotes"><h1 class="endnotes">%s</h1>} % title
|
40
|
+
for l, f in @deplate.footnotes.sort {|a, b| a[1].elt.n <=> b[1].elt.n}
|
41
|
+
fn = f.elt
|
42
|
+
idx = fn.n
|
43
|
+
hclass = "sdfootnoteanc"
|
44
|
+
id = "sdfootnote%d" % idx
|
45
|
+
name = "sdfootnote%danc" % idx
|
46
|
+
href = Deplate::Macro::Footnote::FootnoteTemplate % idx
|
47
|
+
t = [%{<div id="#{id}">},
|
48
|
+
%{<p class="sdendnote">},
|
49
|
+
%{<a class="sdendnotesym" name="#{href}" href="##{name}">#{idx}</a>},
|
50
|
+
%{#{fn.body}},
|
51
|
+
%{</p></div>}
|
52
|
+
]
|
53
|
+
acc << t.join("\n")
|
54
|
+
end
|
55
|
+
acc << "</div>"
|
56
|
+
join_blocks(acc)
|
57
|
+
end
|
58
|
+
alias format_list_of_footnotes format_list_of_endnotes
|
59
|
+
end
|
60
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# mod-en.rb -- Standard messages
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 07-Mai-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.24
|
8
|
+
|
9
|
+
# Description:
|
10
|
+
#
|
11
|
+
# Usage:
|
12
|
+
#
|
13
|
+
# TODO:
|
14
|
+
#
|
15
|
+
# CHANGES:
|
16
|
+
#
|
17
|
+
|
18
|
+
module Deplate::Messages #{{{1
|
19
|
+
LANG = "de"
|
20
|
+
CATALOG = {
|
21
|
+
"Bibliography" => "Bibliographie",
|
22
|
+
"Figure" => "Abbildung",
|
23
|
+
"Footnotes" => "Notes",
|
24
|
+
"Index" => "Register",
|
25
|
+
"List of Figures" => "Abbildungsverzeichnis",
|
26
|
+
"List of Tables" => "Tabellenverzeichnis",
|
27
|
+
"p.\\ " => "p.\\ ",
|
28
|
+
"Table of Contents" => "Table de Mati�re",
|
29
|
+
"Contents" => "Inhalt",
|
30
|
+
"Table" => "Tabelle",
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
if Deplate::Formatter.matches?("latex")
|
35
|
+
module Deplate::Formatter #{{{1
|
36
|
+
class << self
|
37
|
+
alias :prepare_re_fr :prepare
|
38
|
+
def prepare(deplate)
|
39
|
+
prepare_re_fr deplate
|
40
|
+
deplate.add_at(:pre, :mod_packages, "\\usepackage[francais]{babel}")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# vim: ff=unix
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# html-asciimath.rb -- Support for asciimath.js
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 30-Dez-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.43
|
8
|
+
|
9
|
+
class Deplate::Formatter::HTML
|
10
|
+
def formatter_initialize_html_asciimath
|
11
|
+
if @deplate.variables["bodyOptions"]
|
12
|
+
@deplate.variables["bodyOptions"] += %{ onload="translate()"}
|
13
|
+
else
|
14
|
+
@deplate.variables["bodyOptions"] = %{onload="translate()"}
|
15
|
+
end
|
16
|
+
if @deplate.variables["htmlDefEtc"]
|
17
|
+
@deplate.variables["htmlDefEtc"] += %{ xmlns:mml="http://www.w3.org/1998/Math/MathML"}
|
18
|
+
else
|
19
|
+
@deplate.variables["htmlDefEtc"] = %{xmlns:mml="http://www.w3.org/1998/Math/MathML"}
|
20
|
+
end
|
21
|
+
|
22
|
+
@special_symbols["$"] = Proc.new{|e| e == :pre ? "$" : "\\$"}
|
23
|
+
@special_symbols["`"] = Proc.new{|e| e == :pre ? "`" : "\\`"}
|
24
|
+
build_plain_text_rx
|
25
|
+
end
|
26
|
+
|
27
|
+
def prepare_html_asciimath
|
28
|
+
output_at(:pre, :mod_head, <<END_OF_HTML
|
29
|
+
<object id="mathplayer" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987">
|
30
|
+
</object><?import namespace="mml" implementation="#mathplayer"?>
|
31
|
+
<script type="text/javascript" src="ASCIIMathML.js"></script>
|
32
|
+
END_OF_HTML
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def format_math(invoker)
|
37
|
+
return invoker.text
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# html-deplate-button.rb
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 05-Sep-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.23
|
8
|
+
|
9
|
+
class Deplate::Formatter::HTML
|
10
|
+
def prepare_html_deplate_button
|
11
|
+
buttons = %{<a href="http://deplate.sourceforge.net"><img src="http://deplate.sourceforge.net/deplate-mini.png" border="0" alt="deplate Logo" /></a>}
|
12
|
+
output_at(:post, :html_pageicons, buttons) unless buttons.empty?
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# html-headings-navbar.rb
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 15-Nov-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.43
|
8
|
+
#
|
9
|
+
# Description:
|
10
|
+
#
|
11
|
+
# Usage:
|
12
|
+
#
|
13
|
+
# TODO:
|
14
|
+
#
|
15
|
+
# CHANGES:
|
16
|
+
#
|
17
|
+
|
18
|
+
|
19
|
+
class Deplate::Formatter::HTML
|
20
|
+
def formatter_initialize_headings_navbar
|
21
|
+
def_advice("html-headings-navbar", :format_heading,
|
22
|
+
:wrap => Proc.new do |agent, rv, invoker, *rest|
|
23
|
+
max_level = @deplate.variables["headingsNavbarMaxLevel"]
|
24
|
+
if max_level
|
25
|
+
max_level = max_level.to_i
|
26
|
+
else
|
27
|
+
max_level = 1
|
28
|
+
end
|
29
|
+
if invoker.level <= max_level
|
30
|
+
nb = @deplate.invoke_service("navigation_bar", {:invoker => invoker, 'noNavButtons' => true})
|
31
|
+
join_blocks([nb, rv])
|
32
|
+
else
|
33
|
+
rv
|
34
|
+
end
|
35
|
+
end
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# html-obfuscate-email.rb
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 13-Jul-2005.
|
6
|
+
# @Last Change: 27-Okt-2005.
|
7
|
+
# @Revision: 0.33
|
8
|
+
|
9
|
+
class Deplate::Formatter::HTML
|
10
|
+
alias :format_url_re_js_obfuscate_email :format_url
|
11
|
+
|
12
|
+
def format_url(invoker, name, dest, anchor, literal=false)
|
13
|
+
rv = format_url_re_js_obfuscate_email(invoker, name, dest, anchor, literal)
|
14
|
+
if dest =~ /^mailto:/
|
15
|
+
encoded = rv.unpack('C' * rv.size).join(',')
|
16
|
+
dest0 = dest.sub(/^mailto:/, '')
|
17
|
+
significant_name = (name != dest and name != dest0)
|
18
|
+
if @deplate.variables['noObfuscatedNoscript']
|
19
|
+
noscript = significant_name ? name : ''
|
20
|
+
else
|
21
|
+
at = @deplate.variables['obfuscatedNoscriptAt'] || ' AT '
|
22
|
+
dot = @deplate.variables['obfuscatedNoscriptDot'] || ' DOT '
|
23
|
+
if significant_name
|
24
|
+
noscript = %{#{name} (#{dest})}
|
25
|
+
else
|
26
|
+
noscript = name
|
27
|
+
end
|
28
|
+
noscript.gsub!(/(mailto:|[@.])/) do |t|
|
29
|
+
case t
|
30
|
+
when '@'
|
31
|
+
at
|
32
|
+
when '.'
|
33
|
+
dot
|
34
|
+
when 'mailto:'
|
35
|
+
''
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
js = %{<script type="text/javascript" language="javascript"><!--
|
40
|
+
document.write(String.fromCharCode(#{encoded}))
|
41
|
+
--></script><noscript>#{noscript}</noscript>}
|
42
|
+
else
|
43
|
+
rv
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
@@ -0,0 +1,232 @@
|
|
1
|
+
# mod-html-sidebar.rb -- A popup-mini-toc for html output
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 19-Jul-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.50
|
8
|
+
#
|
9
|
+
# Description:
|
10
|
+
#
|
11
|
+
# Usage:
|
12
|
+
#
|
13
|
+
# TODO:
|
14
|
+
#
|
15
|
+
# CHANGES:
|
16
|
+
#
|
17
|
+
|
18
|
+
class Deplate::Formatter::HTML
|
19
|
+
def prepare_html_sidebar
|
20
|
+
opt0 = @deplate.variables["bodyOptions"]
|
21
|
+
@deplate.variables["navGif"] ||= "navigation_back.gif"
|
22
|
+
optSB = %{onload="Event_init()" background="#{@deplate.variables["navGif"]}"}
|
23
|
+
@deplate.variables["bodyOptions"] = opt0 ? "%s %s" % [opt0, optSB] : optSB
|
24
|
+
|
25
|
+
mouseThresholdIn = @deplate.variables["mouseThresholdIn"] || 420
|
26
|
+
mouseThresholdOut = @deplate.variables["mouseThresholdOut"] || 270
|
27
|
+
|
28
|
+
html = <<EndOfHTML
|
29
|
+
<!-- Based on code from selfhtml: http://selfhtml.teamone.de/ -->
|
30
|
+
<!-- dhtml.js: DHTML-Bibliothek (SelfHTML -> DHTML -> Allgemeine DHTML-Bibliothek) -->
|
31
|
+
<script type="text/javascript">
|
32
|
+
<!--
|
33
|
+
var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0;
|
34
|
+
|
35
|
+
function DHTML_init() {
|
36
|
+
|
37
|
+
if (window.opera) {
|
38
|
+
OP = 1;
|
39
|
+
}
|
40
|
+
if(document.getElementById) {
|
41
|
+
DHTML = 1;
|
42
|
+
DOM = 1;
|
43
|
+
}
|
44
|
+
if(document.all && !OP) {
|
45
|
+
DHTML = 1;
|
46
|
+
MS = 1;
|
47
|
+
}
|
48
|
+
if(document.layers && !OP) {
|
49
|
+
DHTML = 1;
|
50
|
+
NS = 1;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
function getElem(p1,p2,p3) {
|
55
|
+
var Elem;
|
56
|
+
if(DOM) {
|
57
|
+
if(p1.toLowerCase()=="id") {
|
58
|
+
if (typeof document.getElementById(p2) == "object")
|
59
|
+
Elem = document.getElementById(p2);
|
60
|
+
else Elem = void(0);
|
61
|
+
return(Elem);
|
62
|
+
}
|
63
|
+
else if(p1.toLowerCase()=="name") {
|
64
|
+
if (typeof document.getElementsByName(p2) == "object")
|
65
|
+
Elem = document.getElementsByName(p2)[p3];
|
66
|
+
else Elem = void(0);
|
67
|
+
return(Elem);
|
68
|
+
}
|
69
|
+
else if(p1.toLowerCase()=="tagname") {
|
70
|
+
if (typeof document.getElementsByTagName(p2) == "object" ||
|
71
|
+
(OP && typeof document.getElementsByTagName(p2) == "function"))
|
72
|
+
Elem = document.getElementsByTagName(p2)[p3];
|
73
|
+
else Elem = void(0);
|
74
|
+
return(Elem);
|
75
|
+
}
|
76
|
+
else return void(0);
|
77
|
+
}
|
78
|
+
else if(MS) {
|
79
|
+
if(p1.toLowerCase()=="id") {
|
80
|
+
if (typeof document.all[p2] == "object")
|
81
|
+
Elem = document.all[p2];
|
82
|
+
else Elem = void(0);
|
83
|
+
return(Elem);
|
84
|
+
}
|
85
|
+
else if(p1.toLowerCase()=="tagname") {
|
86
|
+
if (typeof document.all.tags(p2) == "object")
|
87
|
+
Elem = document.all.tags(p2)[p3];
|
88
|
+
else Elem = void(0);
|
89
|
+
return(Elem);
|
90
|
+
}
|
91
|
+
else if(p1.toLowerCase()=="name") {
|
92
|
+
if (typeof document[p2] == "object")
|
93
|
+
Elem = document[p2];
|
94
|
+
else Elem = void(0);
|
95
|
+
return(Elem);
|
96
|
+
}
|
97
|
+
else return void(0);
|
98
|
+
}
|
99
|
+
else if(NS) {
|
100
|
+
if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") {
|
101
|
+
if (typeof document[p2] == "object")
|
102
|
+
Elem = document[p2];
|
103
|
+
else Elem = void(0);
|
104
|
+
return(Elem);
|
105
|
+
}
|
106
|
+
else if(p1.toLowerCase()=="index") {
|
107
|
+
if (typeof document.layers[p2] == "object")
|
108
|
+
Elem = document.layers[p2];
|
109
|
+
else Elem = void(0);
|
110
|
+
return(Elem);
|
111
|
+
}
|
112
|
+
else return void(0);
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
function getCont(p1,p2,p3) {
|
117
|
+
var Cont;
|
118
|
+
if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) {
|
119
|
+
if(getElem(p1,p2,p3).firstChild.nodeType == 3)
|
120
|
+
Cont = getElem(p1,p2,p3).firstChild.nodeValue;
|
121
|
+
else
|
122
|
+
Cont = "";
|
123
|
+
return(Cont);
|
124
|
+
}
|
125
|
+
else if(MS && getElem(p1,p2,p3)) {
|
126
|
+
Cont = getElem(p1,p2,p3).innerText;
|
127
|
+
return(Cont);
|
128
|
+
}
|
129
|
+
else return void(0);
|
130
|
+
}
|
131
|
+
|
132
|
+
function getAttr(p1,p2,p3,p4) {
|
133
|
+
var Attr;
|
134
|
+
if((DOM || MS) && getElem(p1,p2,p3)) {
|
135
|
+
Attr = getElem(p1,p2,p3).getAttribute(p4);
|
136
|
+
return(Attr);
|
137
|
+
}
|
138
|
+
else if (NS && getElem(p1,p2)) {
|
139
|
+
if (typeof getElem(p1,p2)[p3] == "object")
|
140
|
+
Attr=getElem(p1,p2)[p3][p4]
|
141
|
+
else
|
142
|
+
Attr=getElem(p1,p2)[p4]
|
143
|
+
return Attr;
|
144
|
+
}
|
145
|
+
else return void(0);
|
146
|
+
}
|
147
|
+
|
148
|
+
function setCont(p1,p2,p3,p4) {
|
149
|
+
if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild)
|
150
|
+
getElem(p1,p2,p3).firstChild.nodeValue = p4;
|
151
|
+
else if(MS && getElem(p1,p2,p3))
|
152
|
+
getElem(p1,p2,p3).innerText = p4;
|
153
|
+
else if(NS && getElem(p1,p2,p3)) {
|
154
|
+
getElem(p1,p2,p3).document.open();
|
155
|
+
getElem(p1,p2,p3).document.write(p4);
|
156
|
+
getElem(p1,p2,p3).document.close();
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
DHTML_init();
|
161
|
+
|
162
|
+
function Menue() {
|
163
|
+
if(DOM) {
|
164
|
+
if(MS)
|
165
|
+
getElem("id","Contents",null).style.top = document.body.scrollTop + 50;
|
166
|
+
else
|
167
|
+
getElem("id","Contents",null).style.top = window.pageYOffset + 50;
|
168
|
+
}
|
169
|
+
if(DOM || MS) {
|
170
|
+
if (!DOM) getElem("id","Contents",null).style.top = document.body.scrollTop + 50;
|
171
|
+
if (OP) getElem("id","ContentsBlock",null).style.pixelTop = NavLinksPos;
|
172
|
+
getElem("id","Contents",null).style.visibility = "visible";
|
173
|
+
}
|
174
|
+
else if(NS) {
|
175
|
+
getElem("id","Contents",null).top = window.pageYOffset + 50;
|
176
|
+
getElem("id","Contents",null).visibility = "show";
|
177
|
+
}
|
178
|
+
}
|
179
|
+
|
180
|
+
function noMenue() {
|
181
|
+
if(DOM || MS)
|
182
|
+
getElem("id","Contents",null).style.visibility = "hidden";
|
183
|
+
if(NS)
|
184
|
+
getElem("id","Contents",null).visibility = "hide";
|
185
|
+
}
|
186
|
+
|
187
|
+
function handleMove(ev) {
|
188
|
+
if(!MS) {
|
189
|
+
Event = ev;
|
190
|
+
if(Event.screenX < #{mouseThresholdOut})
|
191
|
+
Menue();
|
192
|
+
else if(Event.screenX > #{mouseThresholdIn})
|
193
|
+
noMenue();
|
194
|
+
}
|
195
|
+
}
|
196
|
+
|
197
|
+
function MShandleMove() {
|
198
|
+
if(MS) {
|
199
|
+
if(window.event.clientX < #{mouseThresholdOut})
|
200
|
+
Menue();
|
201
|
+
else if(window.event.clientX > #{mouseThresholdIn})
|
202
|
+
noMenue();
|
203
|
+
}
|
204
|
+
}
|
205
|
+
|
206
|
+
function Event_init() {
|
207
|
+
if(DOM && !MS && !OP) {
|
208
|
+
getElem("tagname","body",0).addEventListener("mousemove", handleMove, true);
|
209
|
+
}
|
210
|
+
if(NS) {
|
211
|
+
document.captureEvents(Event.MOUSEMOVE);
|
212
|
+
document.onmousemove=handleMove;
|
213
|
+
}
|
214
|
+
if (DOM && OP) {
|
215
|
+
document.onmousemove=handleMove;
|
216
|
+
NavLinksPos=42; //Position des Bereiches NavLinks
|
217
|
+
getElem("id","ContentsBlock",null).style.pixelTop=NavLinksPos;
|
218
|
+
}
|
219
|
+
if (MS) getElem("tagname","body",0).onmousemove=MShandleMove;
|
220
|
+
}
|
221
|
+
//-->
|
222
|
+
</script>
|
223
|
+
EndOfHTML
|
224
|
+
output_at(:pre, :javascript, html)
|
225
|
+
text = "minitoc"
|
226
|
+
args = {"type"=>"pre", "slot"=>"pre_bottom"}
|
227
|
+
minitoc = Deplate::Command::LIST.new(@deplate, nil, text, nil, args, "LIST")
|
228
|
+
minitoc = minitoc.finish.process
|
229
|
+
@deplate.accum_elements.unshift(minitoc)
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|