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/etc.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# etc.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: 16-Okt-2005.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-09-29.
|
|
7
|
+
# @Revision: 0.312
|
|
8
8
|
|
|
9
9
|
require 'deplate/common'
|
|
10
10
|
|
|
@@ -85,10 +85,10 @@ module Deplate::Footnote
|
|
|
85
85
|
if text
|
|
86
86
|
@fnId = @args['id']
|
|
87
87
|
if @fnId and text and !text.empty?
|
|
88
|
-
@regNote = @fnId
|
|
88
|
+
# @regNote = @fnId
|
|
89
89
|
@accum = text
|
|
90
90
|
# @level = @container.level
|
|
91
|
-
fn = Deplate::Regions::Footnote.new(@deplate, @source, @
|
|
91
|
+
fn = Deplate::Regions::Footnote.new(@deplate, @source, @fnId, {}, self)
|
|
92
92
|
fn.finish
|
|
93
93
|
else
|
|
94
94
|
@fnId ||= text
|
|
@@ -122,9 +122,7 @@ class Deplate::IndexEntry
|
|
|
122
122
|
|
|
123
123
|
def initialize(container)
|
|
124
124
|
@container = container
|
|
125
|
-
unless container
|
|
126
|
-
# p "DBG IndexEntry: container = nil"
|
|
127
|
-
end
|
|
125
|
+
# p "DBG IndexEntry: container = nil" unless container
|
|
128
126
|
if block_given?
|
|
129
127
|
yield(self)
|
|
130
128
|
end
|
data/lib/deplate/external.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# external.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-Sep-2004.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-09-02.
|
|
7
|
+
# @Revision: 0.215
|
|
8
8
|
|
|
9
9
|
require "ps2ppm"
|
|
10
10
|
|
|
@@ -39,7 +39,7 @@ module Deplate::External
|
|
|
39
39
|
def log_popen(container, cmd)
|
|
40
40
|
rv = []
|
|
41
41
|
if container.deplate.allow_external
|
|
42
|
-
container.log(["
|
|
42
|
+
container.log(["CWD", Dir.pwd])
|
|
43
43
|
container.log(["Exec", cmd])
|
|
44
44
|
begin
|
|
45
45
|
IO.popen(cmd, "w+") do |io|
|
|
@@ -80,11 +80,15 @@ module Deplate::External
|
|
|
80
80
|
bibfile = File.basename(bibfile)
|
|
81
81
|
log_popen(instance, "#{get_app('kpsewhich')} #{bibfile}")
|
|
82
82
|
end
|
|
83
|
-
|
|
83
|
+
|
|
84
84
|
def dvi2ps(instance, dvifile, psfile, other_options=nil)
|
|
85
85
|
log_popen(instance, "#{get_app('dvips')} -E -Z -D 300 #{other_options} -o #{psfile} #{dvifile}")
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
+
def dvi2png(instance, dvifile, outfile, other_options=nil)
|
|
89
|
+
log_popen(instance, "#{get_app('dvipng')} -T tight -bg Transparent -D 120 #{other_options} -o #{outfile} #{dvifile}")
|
|
90
|
+
end
|
|
91
|
+
|
|
88
92
|
def ps2img(instance, device, psfile, outfile, args)
|
|
89
93
|
# r = args["rx"] || instance.deplate.variables["ps2imgRes"] || 96
|
|
90
94
|
r = args["rx"] || instance.deplate.variables["ps2imgRes"] || 120
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# dbk-article.rb
|
|
2
|
-
# @Author: Thomas Link (
|
|
2
|
+
# @Author: Thomas Link (micathom AT gmail com)
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
|
5
5
|
# @Created: 17-M�r-2004.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-02-17.
|
|
7
|
+
# @Revision: 0.2057
|
|
8
8
|
|
|
9
9
|
require "deplate/docbook"
|
|
10
10
|
require "deplate/fmt/dbk-article"
|
|
@@ -12,6 +12,7 @@ require "deplate/fmt/dbk-article"
|
|
|
12
12
|
class Deplate::Formatter::DbkArticle412 < Deplate::Formatter::DbkArticle
|
|
13
13
|
self.myname = "dbk-article-4.1.2"
|
|
14
14
|
self.rx = /dbk|dbk-article|docbook/i
|
|
15
|
+
self.related = ['dbk']
|
|
15
16
|
|
|
16
17
|
def setup
|
|
17
18
|
@deplate.variables['dbkClass'] ||= 'article'
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
# dbk-article.rb
|
|
2
|
-
# @Author: Thomas Link (
|
|
2
|
+
# @Author: Thomas Link (micathom AT gmail com)
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
|
5
5
|
# @Created: 17-M�r-2004.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-02-24.
|
|
7
|
+
# @Revision: 0.2061
|
|
8
8
|
|
|
9
9
|
require "deplate/docbook"
|
|
10
10
|
|
|
11
11
|
class Deplate::Formatter::DbkArticle < Deplate::Formatter::Docbook
|
|
12
|
-
self.myname =
|
|
12
|
+
self.myname = 'dbk-article'
|
|
13
13
|
self.rx = /dbk|dbk-article|docbook/i
|
|
14
|
+
self.related = ['dbk']
|
|
14
15
|
|
|
15
16
|
def initialize(deplate, args)
|
|
16
17
|
@headings = ['sect1', 'sect2', 'sect3', 'sect4', 'sect5', 'sect6']
|
|
@@ -28,19 +29,19 @@ class Deplate::Formatter::DbkArticle < Deplate::Formatter::Docbook
|
|
|
28
29
|
if lang
|
|
29
30
|
o << %{ lang="#{lang}"}
|
|
30
31
|
end
|
|
31
|
-
return
|
|
32
|
+
return '<article%s>' % o.join
|
|
32
33
|
end
|
|
33
34
|
|
|
34
35
|
def get_doc_close(args)
|
|
35
|
-
return
|
|
36
|
+
return '</article>'
|
|
36
37
|
end
|
|
37
38
|
|
|
38
39
|
def get_doc_head_open(args)
|
|
39
|
-
return
|
|
40
|
+
return '<articleinfo>'
|
|
40
41
|
end
|
|
41
42
|
|
|
42
43
|
def get_doc_head_close(args)
|
|
43
|
-
return
|
|
44
|
+
return '</articleinfo>'
|
|
44
45
|
end
|
|
45
46
|
end
|
|
46
47
|
|
data/lib/deplate/fmt/dbk-book.rb
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
# dbk-book.rb
|
|
2
|
-
# @Author: Thomas Link (
|
|
2
|
+
# @Author: Thomas Link (micathom AT gmail com)
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
|
5
5
|
# @Created: 17-M�r-2004.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-02-17.
|
|
7
|
+
# @Revision: 0.2053
|
|
8
8
|
|
|
9
9
|
require "deplate/docbook"
|
|
10
10
|
|
|
11
11
|
class Deplate::Formatter::DbkBook < Deplate::Formatter::Docbook
|
|
12
12
|
self.myname = "dbk-book"
|
|
13
13
|
self.rx = /dbk|dbk-book|docbook/i
|
|
14
|
+
self.related = ['dbk']
|
|
14
15
|
|
|
15
16
|
def initialize(deplate, args)
|
|
16
17
|
@headings = ["chapter", "sect1", "sect2", "sect3", "sect4", "sect5", "sect6"]
|
data/lib/deplate/fmt/dbk-ref.rb
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
# dbk-ref.rb
|
|
2
|
-
# @Author: Thomas Link (
|
|
2
|
+
# @Author: Thomas Link (micathom AT gmail com)
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
|
5
5
|
# @Created: 17-M�r-2004.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-06-30.
|
|
7
|
+
# @Revision: 0.2127
|
|
8
8
|
|
|
9
9
|
require "deplate/docbook"
|
|
10
10
|
|
|
11
11
|
class Deplate::Formatter::DbkRef < Deplate::Formatter::Docbook
|
|
12
12
|
self.myname = "dbk-ref"
|
|
13
13
|
self.rx = /dbk|dbk-ref|docbook/i
|
|
14
|
+
self.related = ['dbk']
|
|
14
15
|
|
|
15
16
|
def initialize(deplate, args)
|
|
16
17
|
@headings = ["refsect1", "refsect2", "refsect3"]
|
|
@@ -72,7 +73,7 @@ class Deplate::Formatter::DbkRef < Deplate::Formatter::Docbook
|
|
|
72
73
|
|
|
73
74
|
yr = @deplate.variables["copyrightYear"] || dt
|
|
74
75
|
if yr
|
|
75
|
-
year =
|
|
76
|
+
year = Deplate::Core.split_list(yr, ',', '; ').collect {|yr| formatted_inline("year", yr)}
|
|
76
77
|
holder = @deplate.get_clip("author")
|
|
77
78
|
holder = formatted_inline("holder", holder.elt) if holder
|
|
78
79
|
copyright = formatted_block("copyright", [year, holder].flatten.compact.join("\n"))
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# dbk-slides.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: 29-Apr-2005.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-02-17.
|
|
7
|
+
# @Revision: 0.14
|
|
8
8
|
|
|
9
9
|
require 'deplate/docbook'
|
|
10
10
|
|
|
@@ -12,6 +12,7 @@ require 'deplate/docbook'
|
|
|
12
12
|
class Deplate::Formatter::DbkSlides < Deplate::Formatter::Docbook
|
|
13
13
|
self.myname = 'dbk-slides'
|
|
14
14
|
self.rx = /dbk|dbk-slides|docbook/i
|
|
15
|
+
self.related = ['dbk']
|
|
15
16
|
|
|
16
17
|
def initialize(deplate, args)
|
|
17
18
|
@headings = ['foilgroup', 'foil']
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
# docbook-snippet.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: 11-Aug-2005.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-02-17.
|
|
7
|
+
# @Revision: 0.18
|
|
8
8
|
|
|
9
9
|
require 'deplate/fmt/dbk-article.rb'
|
|
10
10
|
require 'deplate/formatter-snippet.rb'
|
|
11
11
|
|
|
12
12
|
class Deplate::Formatter::DbkSnippet < Deplate::Formatter::DbkArticle
|
|
13
13
|
self.myname = "dbk-snippet"
|
|
14
|
+
self.related = ['dbk']
|
|
14
15
|
|
|
15
16
|
include Deplate::Snippet
|
|
16
17
|
|
data/lib/deplate/fmt/html.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# fmt-html.rb
|
|
2
|
-
# @Author: Thomas Link (
|
|
2
|
+
# @Author: Thomas Link (micathom AT gmail com)
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
|
5
5
|
# @Created: 17-M�r-2004.
|
|
6
|
-
# @Last Change:
|
|
7
|
-
# @Revision: 0.
|
|
6
|
+
# @Last Change: 2007-10-12.
|
|
7
|
+
# @Revision: 0.4287
|
|
8
8
|
|
|
9
9
|
# require 'cgi'
|
|
10
10
|
require 'uri'
|
|
@@ -41,7 +41,6 @@ class Deplate::Formatter::HTML < Deplate::Formatter
|
|
|
41
41
|
|
|
42
42
|
attr_accessor :html_class
|
|
43
43
|
|
|
44
|
-
|
|
45
44
|
################################################ Setup {{{1
|
|
46
45
|
def initialize(deplate, args)
|
|
47
46
|
super
|
|
@@ -61,9 +60,11 @@ class Deplate::Formatter::HTML < Deplate::Formatter
|
|
|
61
60
|
@encodings = {
|
|
62
61
|
'latin1' => 'iso-8859-1',
|
|
63
62
|
}
|
|
63
|
+
@deplate.output.attributes[:stepwiseIdx] ||= 0
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
def hook_post_write_file_html
|
|
67
|
+
return if @deplate.variables['cssInclude']
|
|
67
68
|
@deplate.options.css.each do |name, anyway|
|
|
68
69
|
begin
|
|
69
70
|
src = @deplate.collected_css[name]
|
|
@@ -80,7 +81,7 @@ class Deplate::Formatter::HTML < Deplate::Formatter
|
|
|
80
81
|
end
|
|
81
82
|
end
|
|
82
83
|
rescue
|
|
83
|
-
log(["
|
|
84
|
+
log(["Cannot copy css file", name], :error)
|
|
84
85
|
end
|
|
85
86
|
end
|
|
86
87
|
end
|
|
@@ -163,7 +164,7 @@ class Deplate::Formatter::HTML < Deplate::Formatter
|
|
|
163
164
|
date = ParseDate.parsedate(date, true)
|
|
164
165
|
date = Time.local(*date)
|
|
165
166
|
rescue
|
|
166
|
-
log(["
|
|
167
|
+
log(["Cannot parse date", @deplate.get_clip("date").elt], :error)
|
|
167
168
|
date = nil
|
|
168
169
|
end
|
|
169
170
|
end
|
|
@@ -199,9 +200,34 @@ class Deplate::Formatter::HTML < Deplate::Formatter
|
|
|
199
200
|
output_at(:pre, :head_meta, head_meta_tag(%{name="generator" content="deplate.rb #{Deplate::Core.version}"})) unless @variables['noGenerator']
|
|
200
201
|
md = @variables['metaDataExtra']
|
|
201
202
|
output_at(:pre, :head_meta, md) if md
|
|
202
|
-
|
|
203
|
+
|
|
203
204
|
output_at(:pre, :head_title, %{<title>%s</title>} % title) if title
|
|
204
205
|
|
|
206
|
+
news = @variables['newsFeed']
|
|
207
|
+
if news
|
|
208
|
+
news = [news] if news.kind_of?(String)
|
|
209
|
+
for feed in news
|
|
210
|
+
opts, text = @deplate.input.parse_args(feed, nil, false)
|
|
211
|
+
if (href = opts['rss'])
|
|
212
|
+
opts['type'] = 'rss'
|
|
213
|
+
elsif (href = opts['atom'])
|
|
214
|
+
opts['type'] = 'atom'
|
|
215
|
+
else
|
|
216
|
+
href = opts['href'] || text
|
|
217
|
+
end
|
|
218
|
+
case opts['type']
|
|
219
|
+
when 'atom'
|
|
220
|
+
type = 'application/atom+xml'
|
|
221
|
+
else
|
|
222
|
+
type = 'application/rss+xml'
|
|
223
|
+
end
|
|
224
|
+
type = %{type="#{type}"}
|
|
225
|
+
href = %{href="#{href}"}
|
|
226
|
+
title = %{title="#{plain_text(opts['title'] || opts['type'])}"}
|
|
227
|
+
output_at(:pre, :head_meta, head_link_tag(['rel="alternate"', type, title, href].join(' ')))
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
|
|
205
231
|
headExtra = @variables['headExtra']
|
|
206
232
|
headExtra = headExtra.join("\n") if headExtra.kind_of?(Array)
|
|
207
233
|
output_at(:pre, :head_extra, headExtra) if headExtra and !headExtra.empty?
|
|
@@ -337,8 +363,7 @@ EOT
|
|
|
337
363
|
|
|
338
364
|
def wrap_formatted_element_zz_stepwise(invoker, value, args)
|
|
339
365
|
if @variables['stepwiseDisplay']
|
|
340
|
-
|
|
341
|
-
idx = @deplate.output.attributes[:stepwiseIdx] += 1
|
|
366
|
+
idx = stepwise_next
|
|
342
367
|
beg = (@variables['stepwiseBegin'] || '1').to_i
|
|
343
368
|
vis = idx > beg ? 'hidden' : 'visible'
|
|
344
369
|
value.sub!(/\A(\s*)(.*?)(\s*)\Z/m) do |m|
|
|
@@ -363,7 +388,45 @@ EOT
|
|
|
363
388
|
classes.flatten.compact.uniq.join(' ')
|
|
364
389
|
end
|
|
365
390
|
|
|
366
|
-
|
|
391
|
+
unless defined?(KEYS)
|
|
392
|
+
KEYS = {
|
|
393
|
+
'bs' => '8', 'backspace' => '8',
|
|
394
|
+
'tab' => '9',
|
|
395
|
+
'enter' => '13', 'cr' => '13', 'return' => '13',
|
|
396
|
+
'shift' => '16',
|
|
397
|
+
'ctrl' => '17',
|
|
398
|
+
'alt' => '18', 'meta' => '18',
|
|
399
|
+
'pause' => '19',
|
|
400
|
+
'esc' => '27', 'escape' => '27',
|
|
401
|
+
'space' => '32',
|
|
402
|
+
'pageup' => '33',
|
|
403
|
+
'pagedown' => '34',
|
|
404
|
+
'left' => '37',
|
|
405
|
+
'right' => '39',
|
|
406
|
+
'n' => '78',
|
|
407
|
+
'-' => '109', 'dash' => '109',
|
|
408
|
+
'f1' => '112',
|
|
409
|
+
'f2' => '113',
|
|
410
|
+
'f3' => '114',
|
|
411
|
+
'f4' => '115',
|
|
412
|
+
'f5' => '116',
|
|
413
|
+
'f6' => '117',
|
|
414
|
+
'f7' => '118',
|
|
415
|
+
'f8' => '119',
|
|
416
|
+
'f9' => '120',
|
|
417
|
+
'f10' => '121',
|
|
418
|
+
'f11' => '122',
|
|
419
|
+
'f12' => '123',
|
|
420
|
+
',' => '188', 'comma' => '188',
|
|
421
|
+
'.' => '190', 'period' => '190',
|
|
422
|
+
'#' => '191', 'sharp' => '191',
|
|
423
|
+
}
|
|
424
|
+
end
|
|
425
|
+
|
|
426
|
+
def keys_name_to_id(keys)
|
|
427
|
+
Deplate::Core.split_list(keys, ',', '; ').collect {|key| KEYS[key.downcase] || key}.join(',')
|
|
428
|
+
end
|
|
429
|
+
|
|
367
430
|
################################################ Lists {{{1
|
|
368
431
|
def format_list_item(invoker, type, level, item, args={})
|
|
369
432
|
indent = format_indent(level, true)
|
|
@@ -615,7 +678,7 @@ EOT
|
|
|
615
678
|
|
|
616
679
|
style = args['style']
|
|
617
680
|
if style
|
|
618
|
-
style =
|
|
681
|
+
style = Deplate::Core.split_list(style, ',', '; ', invoker.source)
|
|
619
682
|
else
|
|
620
683
|
style = []
|
|
621
684
|
end
|
|
@@ -624,7 +687,7 @@ EOT
|
|
|
624
687
|
|
|
625
688
|
img_id = args['id']
|
|
626
689
|
unless img_id
|
|
627
|
-
fbase = Deplate::Core.
|
|
690
|
+
fbase = Deplate::Core.clean_name(File.basename(fbase || 'imgid'))
|
|
628
691
|
img_id = @deplate.auto_numbered(fbase, :inc => 1, :fmt => %{#{fbase}_%s})
|
|
629
692
|
end
|
|
630
693
|
acc << %{id="#{img_id}" name="#{img_id}"}
|
|
@@ -951,6 +1014,10 @@ EOJS
|
|
|
951
1014
|
if target
|
|
952
1015
|
args['target'] = target
|
|
953
1016
|
end
|
|
1017
|
+
rel = invoker.args['rel']
|
|
1018
|
+
if rel
|
|
1019
|
+
args['rel'] = rel
|
|
1020
|
+
end
|
|
954
1021
|
return args
|
|
955
1022
|
end
|
|
956
1023
|
private :href_args
|
|
@@ -1146,7 +1213,7 @@ EOJS
|
|
|
1146
1213
|
def head_css
|
|
1147
1214
|
csso = @variables['css']
|
|
1148
1215
|
if csso
|
|
1149
|
-
csss =
|
|
1216
|
+
csss = Deplate::Core.split_list(csso, ',', ' ;', nil, nil)
|
|
1150
1217
|
else
|
|
1151
1218
|
csss = []
|
|
1152
1219
|
end
|
|
@@ -1155,6 +1222,9 @@ EOJS
|
|
|
1155
1222
|
csss << cls + '.css'
|
|
1156
1223
|
end
|
|
1157
1224
|
acc = []
|
|
1225
|
+
if @deplate.variables['cssInclude']
|
|
1226
|
+
acc << %{<style type="text/css">} << %{<!--}
|
|
1227
|
+
end
|
|
1158
1228
|
csss.each_with_index do | f, i |
|
|
1159
1229
|
css, media = f.split(/\|/)
|
|
1160
1230
|
if css =~ /^\+/
|
|
@@ -1167,16 +1237,28 @@ EOJS
|
|
|
1167
1237
|
unless @deplate.options.css.find {|c, anyway| cssName == c}
|
|
1168
1238
|
@deplate.options.css << [cssName]
|
|
1169
1239
|
end
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1240
|
+
if @deplate.variables['cssInclude']
|
|
1241
|
+
cssFile = @deplate.collected_css[css]
|
|
1242
|
+
if cssFile and File.readable?(cssFile)
|
|
1243
|
+
acc << File.read(cssFile)
|
|
1244
|
+
else
|
|
1245
|
+
log(['File not found', 'Cannot include CSS', css], :error)
|
|
1246
|
+
end
|
|
1247
|
+
else
|
|
1248
|
+
cssFile = @deplate.auxiliary_filename(css)
|
|
1249
|
+
cssFmt = @deplate.variables['htmlCssUrl'] || @deplate.variables['htmlAuxUrl']
|
|
1250
|
+
cssFile = cssFmt % cssFile if cssFmt
|
|
1251
|
+
opts = [%{rel="stylesheet" type="text/css" href="#{URI.escape(cssFile)}"}]
|
|
1252
|
+
opts << %{title="#{cssName}"} if with_title
|
|
1253
|
+
opts << %{media="#{media}"} if media
|
|
1254
|
+
acc << head_link_tag(opts.join(' '))
|
|
1255
|
+
end
|
|
1177
1256
|
end
|
|
1178
1257
|
cssExtra = @variables['cssExtra']
|
|
1179
1258
|
acc << cssExtra if cssExtra
|
|
1259
|
+
if @deplate.variables['cssInclude']
|
|
1260
|
+
acc << %{-->} << %{</style>}
|
|
1261
|
+
end
|
|
1180
1262
|
return acc.join("\n")
|
|
1181
1263
|
end
|
|
1182
1264
|
|
|
@@ -1307,24 +1389,29 @@ EOJS
|
|
|
1307
1389
|
for i in arr
|
|
1308
1390
|
ff = @deplate.dest
|
|
1309
1391
|
xf = i.file(invoker)
|
|
1310
|
-
|
|
1392
|
+
xc = i.container
|
|
1393
|
+
xl = xc && xc.heading_level
|
|
1311
1394
|
if xf or xl
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
f
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1395
|
+
begin
|
|
1396
|
+
f = xf || invoker.output_file_name(:level_as_string => xl,
|
|
1397
|
+
:relative => invoker)
|
|
1398
|
+
if f == ff
|
|
1399
|
+
f = ''
|
|
1400
|
+
l = xl
|
|
1401
|
+
if l and !l.empty?
|
|
1402
|
+
t = l
|
|
1403
|
+
elsif @deplate.options.multi_file_output
|
|
1404
|
+
t = @variables['refButton'] || '[⇒]'
|
|
1405
|
+
else
|
|
1406
|
+
t = 'I'
|
|
1407
|
+
end
|
|
1321
1408
|
else
|
|
1322
|
-
t = '
|
|
1409
|
+
t = @deplate.file_with_suffix(f, '', true)
|
|
1323
1410
|
end
|
|
1324
|
-
|
|
1325
|
-
|
|
1411
|
+
acc << format_url(invoker, t, f, i.label, true)
|
|
1412
|
+
rescue Exception => e
|
|
1413
|
+
invoker.log(['Internal error: No output file', n, i.label, ff, xf, xl, invoker.class, e], :error)
|
|
1326
1414
|
end
|
|
1327
|
-
acc << format_url(invoker, t, f, i.label, true)
|
|
1328
1415
|
else
|
|
1329
1416
|
invoker.log(['Index: Neither file nor level defined: dropping', n, i.label], :error)
|
|
1330
1417
|
end
|
|
@@ -1351,7 +1438,7 @@ EOJS
|
|
|
1351
1438
|
end
|
|
1352
1439
|
|
|
1353
1440
|
def format_index_hd_label(char)
|
|
1354
|
-
return "hdIdx#{char}"
|
|
1441
|
+
return "hdIdx#{Deplate::Core.clean_name(char, :chars => '^a-zA-Z0-9')}"
|
|
1355
1442
|
end
|
|
1356
1443
|
|
|
1357
1444
|
|
|
@@ -1400,7 +1487,13 @@ EOJS
|
|
|
1400
1487
|
when :ruler, :noruler
|
|
1401
1488
|
return nil
|
|
1402
1489
|
else
|
|
1403
|
-
|
|
1490
|
+
if cell.class == Array
|
|
1491
|
+
puts caller[0..10].join("\n")
|
|
1492
|
+
log(["We shouldn't be here. If you can track down when this happens, please send an example to the author.", cell[0].get_text], :error)
|
|
1493
|
+
return []
|
|
1494
|
+
else
|
|
1495
|
+
c = cell.cell
|
|
1496
|
+
end
|
|
1404
1497
|
if thistag
|
|
1405
1498
|
tag = thistag
|
|
1406
1499
|
else
|
|
@@ -1650,10 +1743,10 @@ EOJS
|
|
|
1650
1743
|
return f
|
|
1651
1744
|
end
|
|
1652
1745
|
|
|
1653
|
-
def handle_key(
|
|
1654
|
-
|
|
1746
|
+
def handle_key(keys, function)
|
|
1747
|
+
keys = ',%s,' % keys_name_to_id(keys)
|
|
1655
1748
|
@deplate.output.attributes[:handle_keys] ||= {}
|
|
1656
|
-
@deplate.output.attributes[:handle_keys][
|
|
1749
|
+
@deplate.output.attributes[:handle_keys][keys] = function
|
|
1657
1750
|
end
|
|
1658
1751
|
|
|
1659
1752
|
def_service('navigation_links') do |args, text|
|
|
@@ -1768,30 +1861,64 @@ EOJS
|
|
|
1768
1861
|
|
|
1769
1862
|
def_service('stepwise_display') do |args, text|
|
|
1770
1863
|
stepKey = @variables['stepwiseKey'] || '34'
|
|
1771
|
-
if @variables['stepwiseDisplay'] and stepKey
|
|
1864
|
+
# if @variables['stepwiseDisplay'] and stepKey
|
|
1865
|
+
if stepKey
|
|
1772
1866
|
handle_key(stepKey, 'StepwiseDisplayNext();')
|
|
1773
|
-
stepInit = @variables['stepwiseBegin'] || '
|
|
1867
|
+
stepInit = @variables['stepwiseBegin'] || '0'
|
|
1868
|
+
unless defined?(@nextPage)
|
|
1869
|
+
catch(:exit) do
|
|
1870
|
+
# files = ['StepWiseNextPage.js']
|
|
1871
|
+
style = args['style'] || @variables['stepwiseStyle']
|
|
1872
|
+
files = [style ? "StepWiseNextPage_#{style}.js" : 'StepWiseNextPage.js']
|
|
1873
|
+
for file in files
|
|
1874
|
+
@nextPage = get_javascript(file, args)
|
|
1875
|
+
throw :exit if @nextPage
|
|
1876
|
+
end
|
|
1877
|
+
@nextPage = ''
|
|
1878
|
+
# <<EOJS
|
|
1879
|
+
# function StepwiseNextPage(Msg) {
|
|
1880
|
+
# return confirm(Msg);
|
|
1881
|
+
# }
|
|
1882
|
+
# EOJS
|
|
1883
|
+
end
|
|
1884
|
+
end
|
|
1774
1885
|
acc = []
|
|
1775
1886
|
acc << <<EOJS
|
|
1887
|
+
#{@nextPage}
|
|
1776
1888
|
<script type="text/javascript">
|
|
1777
1889
|
<!--
|
|
1778
1890
|
var StepwiseCounter = #{stepInit};
|
|
1891
|
+
|
|
1779
1892
|
function StepwiseDisplayNext() {
|
|
1780
1893
|
StepwiseCounter = StepwiseCounter + 1;
|
|
1781
1894
|
var Elt = document.getElementById('Step' + StepwiseCounter);
|
|
1895
|
+
var HighStep = document.getElementById('HighStep' + StepwiseCounter);
|
|
1896
|
+
var NextHighStep = document.getElementById('HighStep' + (StepwiseCounter + 1));
|
|
1782
1897
|
if (Elt)
|
|
1783
1898
|
Elt.style.visibility = 'visible';
|
|
1899
|
+
else if (HighStep)
|
|
1900
|
+
if (NextHighStep)
|
|
1901
|
+
HighStep.className = 'stephighlight';
|
|
1902
|
+
else
|
|
1903
|
+
HighStep.className = 'steplast';
|
|
1784
1904
|
EOJS
|
|
1785
|
-
|
|
1786
|
-
|
|
1905
|
+
case @variables['stepwiseContinous']
|
|
1906
|
+
when 'confirm', 'query', 'ask', 'yn'
|
|
1907
|
+
acc << <<EOJS
|
|
1908
|
+
else
|
|
1909
|
+
if (StepwiseNextPage("#{@deplate.msg('Next page?')}"))
|
|
1910
|
+
NavigationNextPage();
|
|
1911
|
+
EOJS
|
|
1912
|
+
when true, 1, '1'
|
|
1913
|
+
acc << <<EOJS
|
|
1787
1914
|
else
|
|
1788
1915
|
NavigationNextPage();
|
|
1789
1916
|
EOJS
|
|
1790
1917
|
end
|
|
1791
1918
|
acc << <<EOJS
|
|
1792
1919
|
}
|
|
1793
|
-
|
|
1794
|
-
|
|
1920
|
+
//-->
|
|
1921
|
+
</script>
|
|
1795
1922
|
EOJS
|
|
1796
1923
|
acc.join
|
|
1797
1924
|
else
|
|
@@ -1836,7 +1963,20 @@ EOJS
|
|
|
1836
1963
|
end
|
|
1837
1964
|
@html_navigation_note
|
|
1838
1965
|
end
|
|
1839
|
-
|
|
1966
|
+
|
|
1967
|
+
def get_javascript(file, args)
|
|
1968
|
+
file = @deplate.find_in_lib(file, :formatters => ['javascript'])
|
|
1969
|
+
if file
|
|
1970
|
+
tmpl = Deplate::Template.new(:template => File.read(file))
|
|
1971
|
+
Deplate::Define.let_variables(@deplate, args) do
|
|
1972
|
+
return tmpl.fill_in(@deplate).join("\n")
|
|
1973
|
+
end
|
|
1974
|
+
else
|
|
1975
|
+
log(['File not found', file])
|
|
1976
|
+
end
|
|
1977
|
+
return nil
|
|
1978
|
+
end
|
|
1979
|
+
|
|
1840
1980
|
|
|
1841
1981
|
private
|
|
1842
1982
|
def navbar_begin(type, slot, idx)
|