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,419 @@
|
|
1
|
+
# htmlsite.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: 17-M�r-2004.
|
6
|
+
# @Last Change: 01-Nov-2005.
|
7
|
+
# @Revision: 0.910
|
8
|
+
|
9
|
+
require "deplate/fmt/html"
|
10
|
+
|
11
|
+
# A variant of the html-formatter that suppresses paragraphs and creates new
|
12
|
+
# files on page breaks and level-1 headings.
|
13
|
+
#
|
14
|
+
# Press a-n or double-click on a heading to jump to the next slide. Press a-b
|
15
|
+
# to jump to the previous one.
|
16
|
+
#
|
17
|
+
|
18
|
+
class Deplate::Formatter::HTML_Site < Deplate::Formatter::HTML
|
19
|
+
self.myname = "htmlsite"
|
20
|
+
self.rx = /html?|htmlwebsite/i
|
21
|
+
|
22
|
+
def hook_pre_body_flush_html_pager
|
23
|
+
title = @deplate.get_clip("title")
|
24
|
+
title = title.elt if title
|
25
|
+
top = @deplate.output.top_heading
|
26
|
+
if top
|
27
|
+
top_title = top.description
|
28
|
+
if top_title
|
29
|
+
title = clean_tags([title, top_title].compact.join(" -- "))
|
30
|
+
set_at(:pre, :head_title, %{<title>%s</title>} % title) unless title.empty?
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
invoker = nil
|
35
|
+
navbar = @deplate.variables["docNavbar"]
|
36
|
+
if navbar
|
37
|
+
case navbar
|
38
|
+
when "top"
|
39
|
+
format_navigation_bar(invoker, :body, :navbar_top, :top)
|
40
|
+
when "bottom"
|
41
|
+
format_navigation_bar(invoker, :body, :navbar_bottom, :bottom)
|
42
|
+
else
|
43
|
+
format_navigation_bar(invoker, :body, :navbar_top, :top)
|
44
|
+
format_navigation_bar(invoker, :body, :navbar_bottom, :bottom)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
set_relation(:htmlsite_prev, "Prev", "previous")
|
49
|
+
set_relation(:htmlsite_next, "Next", "next")
|
50
|
+
set_relation(:htmlsite_up, "Home", "up") if @variables["@idx"].to_i > 0
|
51
|
+
end
|
52
|
+
|
53
|
+
def set_relation(slot, service_infix, tag)
|
54
|
+
url = @deplate.invoke_service("page#{service_infix}Dest")
|
55
|
+
if url
|
56
|
+
title = @deplate.invoke_service("page#{service_infix}Title") || tag
|
57
|
+
title = clean_tags(title)
|
58
|
+
set_at(:pre, slot, head_link_tag(%{rel="#{tag}" href="#{url}" title="#{title}"}))
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def setup
|
63
|
+
@deplate.options.multi_file_output = true if @deplate.options.multi_file_output.nil?
|
64
|
+
super
|
65
|
+
end
|
66
|
+
|
67
|
+
# for web sites, a pagebreak means navigation bars + a new file
|
68
|
+
def format_pagebreak(invoker, html_class=nil, major=false)
|
69
|
+
if major
|
70
|
+
invoker.postponed_format << lambda {|e| @deplate.break_output}
|
71
|
+
unless @deplate.body_empty?
|
72
|
+
return format_label(invoker, :closeOpen)
|
73
|
+
end
|
74
|
+
return nil
|
75
|
+
else
|
76
|
+
return super
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
class Deplate::Core
|
83
|
+
def formatter_initialize_htmlsite
|
84
|
+
@max_headings = nil
|
85
|
+
@doc_services["tabBarNote"] = :htmlsite_tabBarNote
|
86
|
+
@doc_services["tabBarLeft"] = :htmlsite_tabBarLeft
|
87
|
+
@doc_services["tabBarRight"] = :htmlsite_tabBarRight
|
88
|
+
@doc_services["tabBarTop"] = :htmlsite_tabBarTop
|
89
|
+
@doc_services["tabBarBottom"] = :htmlsite_tabBarBottom
|
90
|
+
@doc_services["progressPercent"] = :htmlsite_progressPercent
|
91
|
+
@doc_services["progressPages"] = :htmlsite_progressPages
|
92
|
+
@doc_services["progressFirst"] = :htmlsite_progressFirst
|
93
|
+
@doc_services["progressLast"] = :htmlsite_progressLast
|
94
|
+
@doc_services["progressBar"] = :htmlsite_progressBar
|
95
|
+
@doc_services["progressBarHorizontal"] = :htmlsite_progressBarHorizontal
|
96
|
+
@doc_services["progressBarVertical"] = :htmlsite_progressBarVertical
|
97
|
+
@doc_services["pageNextDest"] = :htmlsite_pageNextDest
|
98
|
+
@doc_services["pageNextTitle"] = :htmlsite_pageNextTitle
|
99
|
+
@doc_services["pagePrevDest"] = :htmlsite_pagePrevDest
|
100
|
+
@doc_services["pagePrevTitle"] = :htmlsite_pagePrevTitle
|
101
|
+
@doc_services["pageHomeDest"] = :htmlsite_pageHomeDest
|
102
|
+
@doc_services["pageHomeTitle"] = :htmlsite_pageHomeTitle
|
103
|
+
# @doc_services["<+TBD+>"] = :htmlsite_<+TBD+>
|
104
|
+
end
|
105
|
+
|
106
|
+
# def htmlsite_<+TBD+>
|
107
|
+
# end
|
108
|
+
|
109
|
+
def htmlsite_tabBarNote(args, text)
|
110
|
+
unless defined?(@htmlsite_sliding_tabbar_note)
|
111
|
+
@htmlsite_sliding_tabbar_note = msg(:htmlsite_tabbar_note)
|
112
|
+
# @htmlsite_sliding_tabbar_note ||= <<-EON
|
113
|
+
# <p class="htmlnavigationnote" />In order to pin down the sliding menu, click on the
|
114
|
+
# small square on the top left.</p>
|
115
|
+
# EON
|
116
|
+
end
|
117
|
+
return @htmlsite_sliding_tabbar_note
|
118
|
+
end
|
119
|
+
|
120
|
+
def htmlsite_tabBarLeft(args, text)
|
121
|
+
htmlsite_tabBar(args, text, "tabBarLeft", false)
|
122
|
+
end
|
123
|
+
|
124
|
+
def htmlsite_tabBarRight(args, text)
|
125
|
+
htmlsite_tabBar(args, text, "tabBarRight", false)
|
126
|
+
end
|
127
|
+
|
128
|
+
def htmlsite_tabBarTop(args, text)
|
129
|
+
htmlsite_tabBar(args, text, "tabBarTop", true)
|
130
|
+
end
|
131
|
+
|
132
|
+
def htmlsite_tabBarBottom(args, text)
|
133
|
+
htmlsite_tabBar(args, text, "tabBarBottom", true)
|
134
|
+
end
|
135
|
+
|
136
|
+
def htmlsite_tabBar(args, text, style, horizontal)
|
137
|
+
if horizontal
|
138
|
+
tagsl0 = "table"
|
139
|
+
tagsl1 = ["tr"]
|
140
|
+
tagsl2 = ["td"]
|
141
|
+
# tagsl1 = []
|
142
|
+
# tagsl2 = ["span"]
|
143
|
+
width = args["width"] || "100%"
|
144
|
+
heigth = args["heigth"] || "20px"
|
145
|
+
else
|
146
|
+
tagsl0 = "table"
|
147
|
+
tagsl1 = []
|
148
|
+
tagsl2 = ["tr", "td"]
|
149
|
+
width = args["width"] || "140px"
|
150
|
+
heigth = args["heigth"]
|
151
|
+
end
|
152
|
+
|
153
|
+
curr = @variables["@idx"]
|
154
|
+
idx = curr.to_i
|
155
|
+
type = @variables["navBarType"] || :top
|
156
|
+
urlp, prv = @formatter.navbar_button_prev(nil, nil, idx, type, idx > 0)
|
157
|
+
url, home = @formatter.navbar_button_home(nil, nil, idx, type, idx > 0)
|
158
|
+
urln, nxt = @formatter.navbar_button_next(nil, nil, idx, type, idx < top_heading_idx)
|
159
|
+
|
160
|
+
tabbar = []
|
161
|
+
tabbar << html_navigation_keys({"next" => urln}, "") if args["nextKey"]
|
162
|
+
# tabbar << %{<#{tagsl0} width="#{width}" class="#{style}" summary="Navigation bar">} if tagsl0
|
163
|
+
tabbar << %{<#{tagsl0} class="#{style}" summary="Navigation bar">} if tagsl0
|
164
|
+
tabbar << htmlsite_tabBar_accum_tags(tagsl1, style, true)
|
165
|
+
|
166
|
+
if !@variables["noTabBarButtons"]
|
167
|
+
s = "#{style}Buttons"
|
168
|
+
o = htmlsite_tabBar_accum_tags(tagsl2, s, true)
|
169
|
+
c = htmlsite_tabBar_accum_tags(tagsl2, s, false)
|
170
|
+
if @variables["tabBarButtons"]
|
171
|
+
buttons = []
|
172
|
+
for b in @variables["tabBarButtons"].split(/[ ,;]/)
|
173
|
+
case b
|
174
|
+
when "home", "h"
|
175
|
+
buttons << home
|
176
|
+
when "next", "n"
|
177
|
+
buttons << nxt
|
178
|
+
when "prev", "previous", "p"
|
179
|
+
buttons << prv
|
180
|
+
end
|
181
|
+
end
|
182
|
+
else
|
183
|
+
buttons = [prv, home, nxt]
|
184
|
+
end
|
185
|
+
buttons.compact!
|
186
|
+
buttons.delete(%{ })
|
187
|
+
tabbar << [o, buttons.join(%{ }), c].join
|
188
|
+
end
|
189
|
+
|
190
|
+
depth = args["depth"]
|
191
|
+
depth = depth ? depth.to_i : 1
|
192
|
+
inactivedepth = args["depthInactive"]
|
193
|
+
inactivedepth = inactivedepth ? inactivedepth.to_i : depth
|
194
|
+
|
195
|
+
tabbarsep = @variables["tabBarSep"] || "|"
|
196
|
+
tabbarsep = /\s*#{Regexp.escape(tabbarsep)}\s*/
|
197
|
+
tabbarextra = @variables["tabBar"] || ["[auto]"]
|
198
|
+
tabbarextra = tabbarextra.split(/\n/) if tabbarextra.kind_of?(String)
|
199
|
+
if @variables["tabEqualWidths"] || @variables["equalTabs"]
|
200
|
+
tabsize = top_heading_idx + tabbarextra.size
|
201
|
+
tabsize = 100 / tabsize
|
202
|
+
tabsize = %{ #{horizontal ? "width" : "heigth"}="#{tabsize}%"}
|
203
|
+
else
|
204
|
+
tabsize = nil
|
205
|
+
end
|
206
|
+
for e in tabbarextra
|
207
|
+
if e == "[auto]"
|
208
|
+
tabbar_auto_entries(tabbar, idx, style, depth, inactivedepth, tagsl2, tabsize)
|
209
|
+
else
|
210
|
+
title, url = e.split(tabbarsep)
|
211
|
+
html = %{<a class="tabBarEntry" href="#{url}">#{title}</a>}
|
212
|
+
tabbar << tabbar_entry(html, tagsl2, "#{style}Inactive", tabsize)
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
if args["spacer"]
|
217
|
+
if horizontal
|
218
|
+
spacer = %{<img width="1px" height="#{height}" src="%s" alt="" />} % args["spacer"]
|
219
|
+
else
|
220
|
+
spacer = %{<img width="#{width}" height="1px" src="%s" alt="" />} % args["spacer"]
|
221
|
+
end
|
222
|
+
else
|
223
|
+
spacer = nil
|
224
|
+
end
|
225
|
+
|
226
|
+
if args["progressBar"]
|
227
|
+
if horizontal
|
228
|
+
pb = invoke_service("progressBarVertical")
|
229
|
+
else
|
230
|
+
pb = invoke_service("progressBarHorizontal")
|
231
|
+
end
|
232
|
+
s = "#{style}Buttons"
|
233
|
+
o = htmlsite_tabBar_accum_tags(tagsl2, s, true)
|
234
|
+
c = htmlsite_tabBar_accum_tags(tagsl2, s, false)
|
235
|
+
i = invoke_service("progressPercent")
|
236
|
+
tabbar << [o, spacer, pb, i, c].compact.join
|
237
|
+
end
|
238
|
+
|
239
|
+
tabbar << htmlsite_tabBar_accum_tags(tagsl1, style, false)
|
240
|
+
tabbar << %{</#{tagsl0}>} if tagsl0
|
241
|
+
return tabbar.compact.join("\n")
|
242
|
+
end
|
243
|
+
|
244
|
+
def htmlsite_progressBar(args, text)
|
245
|
+
horizontal = !args["vertical"]
|
246
|
+
htmlsite_progress_bar(args, horizontal)
|
247
|
+
end
|
248
|
+
|
249
|
+
def htmlsite_progressBarHorizontal(args, text)
|
250
|
+
htmlsite_progress_bar(args, true)
|
251
|
+
end
|
252
|
+
|
253
|
+
def htmlsite_progressBarVertical(args, text)
|
254
|
+
htmlsite_progress_bar(args, false)
|
255
|
+
end
|
256
|
+
|
257
|
+
def htmlsite_progress_bar(args, horizontal)
|
258
|
+
idx = @variables["@idx"].to_i
|
259
|
+
percent = 100 * idx / top_heading_idx
|
260
|
+
anti = 100 - percent
|
261
|
+
all = percent + anti
|
262
|
+
if all != 100
|
263
|
+
anti += 100 - all
|
264
|
+
end
|
265
|
+
height = args["h"] || args["height"] || (horizontal ? "10pt" : "100pt")
|
266
|
+
width = args["w"] || args["width"] || (horizontal ? "100pt" : "10pt")
|
267
|
+
pb = []
|
268
|
+
# pb << %{<div class="progressBar">}
|
269
|
+
pb << %{<table align="center" class="progressBar" width="#{width}" style="height:#{height}">}
|
270
|
+
if horizontal
|
271
|
+
pb << %{<tr>}
|
272
|
+
pb << %{<td class="progressBarDone" width="#{percent}%" style="height:100%"></td>} unless percent == 0
|
273
|
+
pb << %{<td class="progressBarToBeDone" width="#{100 - percent}%" style="height:100%"></td>} unless percent == 100
|
274
|
+
pb << %{</tr>}
|
275
|
+
else
|
276
|
+
pb << %{<tr class="progressBarDone" width="100%" style="height:#{percent}%"></tr>} unless percent == 0
|
277
|
+
pb << %{<tr class="progressBarToBeDone" width="100%" style="height:#{100 - percent}%"></tr>} unless percent == 100
|
278
|
+
end
|
279
|
+
pb << %{</table>}
|
280
|
+
# pb << %{</div>}
|
281
|
+
return pb.join
|
282
|
+
end
|
283
|
+
|
284
|
+
def htmlsite_progressPercent(args, text)
|
285
|
+
idx = @variables["@idx"].to_i
|
286
|
+
percent = 100 * idx / top_heading_idx
|
287
|
+
return %{<span class="progress">#{percent}%</span>}
|
288
|
+
end
|
289
|
+
|
290
|
+
def htmlsite_progressPages(args, text)
|
291
|
+
idx = @variables["@idx"].to_i
|
292
|
+
max = top_heading_idx
|
293
|
+
return %{<span class="progress">#{idx}/#{max}</span>}
|
294
|
+
end
|
295
|
+
|
296
|
+
def htmlsite_progressFirst(args, text)
|
297
|
+
idx = @variables["@idx"].to_i
|
298
|
+
idx == 0 ? "1" : "0"
|
299
|
+
end
|
300
|
+
|
301
|
+
def htmlsite_progressLast(args, text)
|
302
|
+
idx = @variables["@idx"].to_i
|
303
|
+
max = top_heading_idx
|
304
|
+
idx == max ? "1" : "0"
|
305
|
+
end
|
306
|
+
|
307
|
+
def htmlsite_pageNextDest(args, text)
|
308
|
+
hd = delta_heading(1)
|
309
|
+
pagedest_relpath(hd)
|
310
|
+
end
|
311
|
+
|
312
|
+
def htmlsite_pageNextTitle(args, text)
|
313
|
+
hd = delta_heading(1)
|
314
|
+
pagedest_relpath(hd)
|
315
|
+
end
|
316
|
+
|
317
|
+
def htmlsite_pagePrevDest(args, text)
|
318
|
+
hd = delta_heading(-1)
|
319
|
+
pagedest_relpath(hd)
|
320
|
+
end
|
321
|
+
|
322
|
+
def htmlsite_pagePrevTitle(args, text)
|
323
|
+
hd = delta_heading(-1)
|
324
|
+
hd && hd.description
|
325
|
+
end
|
326
|
+
|
327
|
+
def htmlsite_pageHomeDest(args, text)
|
328
|
+
hd = top_heading_by_idx(0)
|
329
|
+
pagedest_relpath(hd)
|
330
|
+
end
|
331
|
+
|
332
|
+
def htmlsite_pageHomeTitle(args, text)
|
333
|
+
hd = top_heading_by_idx(0)
|
334
|
+
(hd && hd.description) || msg("Frontpage")
|
335
|
+
end
|
336
|
+
|
337
|
+
def delta_heading(delta)
|
338
|
+
idx = @variables["@idx"]
|
339
|
+
if idx
|
340
|
+
idx = idx.to_i + delta + 1
|
341
|
+
if idx >= 0
|
342
|
+
rv = top_heading_by_idx(idx)
|
343
|
+
return rv
|
344
|
+
end
|
345
|
+
end
|
346
|
+
return nil
|
347
|
+
end
|
348
|
+
|
349
|
+
private
|
350
|
+
def pagedest_relpath(hd)
|
351
|
+
if hd
|
352
|
+
idx = @variables["@idx"].to_i
|
353
|
+
curr = top_heading_by_idx(idx)
|
354
|
+
return relative_path(hd.output_location, File.dirname(curr.output_location))
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
def tabbar_auto_entries(tabbar, idx, style, depth, inactivedepth, tags, tabsize)
|
359
|
+
if @variables["tabBarHomeName"]
|
360
|
+
s = idx == 0 ? "#{style}Active" : "#{style}Inactive"
|
361
|
+
title = @variables["tabBarHomeName"]
|
362
|
+
file = @formatter.navbar_guess_file_name(0, idx, :navbar)
|
363
|
+
tabbar << tabbar_entry(%{<a class="tabBarEntry" href="#{file}">#{title}</a>}, tags, s, tabsize)
|
364
|
+
end
|
365
|
+
|
366
|
+
each_heading(depth) do |hd, title|
|
367
|
+
lstr = hd.level_as_string
|
368
|
+
lnr = hd.top_heading_idx
|
369
|
+
file = hd.output_file_name(:basename => true)
|
370
|
+
if hd.level > 1
|
371
|
+
anchor = hd.args[:id] || hd.label.first
|
372
|
+
if anchor
|
373
|
+
file = [file, "#", anchor].join
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
377
|
+
if top_heading_by_idx(idx) == hd.top_heading
|
378
|
+
s = "#{style}Active"
|
379
|
+
else
|
380
|
+
s = "#{style}Inactive"
|
381
|
+
if hd.level > inactivedepth
|
382
|
+
next
|
383
|
+
end
|
384
|
+
end
|
385
|
+
|
386
|
+
tabbar << tabbar_entry(%{<a class="tabBarEntry" href="#{file}">#{title}</a>}, tags, s, tabsize)
|
387
|
+
end
|
388
|
+
end
|
389
|
+
|
390
|
+
def tabbar_entry(html, tags, html_class, tabsize)
|
391
|
+
o = htmlsite_tabBar_accum_tags(tags, html_class, true, tabsize)
|
392
|
+
c = htmlsite_tabBar_accum_tags(tags, html_class, false, tabsize)
|
393
|
+
[o, html, c].join
|
394
|
+
end
|
395
|
+
|
396
|
+
def htmlsite_tabBar_accum_tags(tags, htmlClass, open_tags, extra=nil)
|
397
|
+
acc = []
|
398
|
+
unless open_tags
|
399
|
+
tags = tags.reverse
|
400
|
+
end
|
401
|
+
for t in tags
|
402
|
+
if t
|
403
|
+
if open_tags
|
404
|
+
t = %{<#{t}#{extra} class="#{htmlClass}">}
|
405
|
+
else
|
406
|
+
t = %{</#{t}>}
|
407
|
+
end
|
408
|
+
acc << t
|
409
|
+
end
|
410
|
+
end
|
411
|
+
if acc.empty?
|
412
|
+
return nil
|
413
|
+
else
|
414
|
+
return acc.join
|
415
|
+
end
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
419
|
+
# vim: ff=unix
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# fmt-html.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: 17-M�r-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.809
|
8
|
+
|
9
|
+
require "deplate/fmt/htmlsite"
|
10
|
+
|
11
|
+
# This is html-site with the paragraph swallowing.
|
12
|
+
class Deplate::Formatter::HTML_Slides < Deplate::Formatter::HTML_Site
|
13
|
+
self.myname = "htmlslides"
|
14
|
+
self.rx = /html?|htmlslides/i
|
15
|
+
|
16
|
+
alias :format_paragraph_html :format_paragraph
|
17
|
+
def format_paragraph(invoker)
|
18
|
+
super if invoker.args["noSwallow"] or @deplate.variables["noSwallow"]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# fmt-html.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: 17-M�r-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.441
|
8
|
+
|
9
|
+
require "deplate/fmt/htmlslides"
|
10
|
+
|
11
|
+
# A variant of the html-formatter that generates website to please
|
12
|
+
# Fritz Heinrichmeyer
|
13
|
+
|
14
|
+
class Deplate::Formatter::HTML_Website < Deplate::Formatter::HTML_Slides
|
15
|
+
self.myname = "htmlwebsite"
|
16
|
+
self.rx = /html?|htmlslides|htmlwebsite/i
|
17
|
+
|
18
|
+
def hook_pre_body_flush_html_pager
|
19
|
+
# invoker = @deplate.accum_elements.last
|
20
|
+
invoker = nil
|
21
|
+
format_navigation_bar(invoker, :body, :navbar_top, :top)
|
22
|
+
end
|
23
|
+
|
24
|
+
def setup
|
25
|
+
super
|
26
|
+
@deplate.variables["headings"] = "plain"
|
27
|
+
end
|
28
|
+
|
29
|
+
def prepare
|
30
|
+
super
|
31
|
+
metaextra = @deplate.get_clip("metaextra")
|
32
|
+
output_at(:pre, :head_beg, %{#{metaextra.elt if metaextra}})
|
33
|
+
explorerhack=<<EOF
|
34
|
+
<style type="text/css">
|
35
|
+
@import url(./no_ns.css);
|
36
|
+
</style>
|
37
|
+
<!--[if gte IE 5]>
|
38
|
+
<link href="./ie5.css" rel="stylesheet" type="text/css">
|
39
|
+
<![endif]-->
|
40
|
+
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
|
41
|
+
<link rel="icon" href="./favicon.ico" type="image/x-icon" />
|
42
|
+
EOF
|
43
|
+
output_at(:pre, :head_end, explorerhack)
|
44
|
+
end
|
45
|
+
|
46
|
+
def format_navigation_bar(invoker, type, slot, bartype, first=false, last=false)
|
47
|
+
idx, _, _ = navbar_output_index(invoker, first, last)
|
48
|
+
navextra = @deplate.get_clip("navextra")
|
49
|
+
navmenu = [%{<span class="navmenuhead">#{navextra.elt if navextra}</span>} ]
|
50
|
+
@deplate.each_heading(1) do |section, title|
|
51
|
+
unless section.args["noList"]
|
52
|
+
f = section.output_file_name(:basename => true)
|
53
|
+
v = section.description.gsub(/<\/?[^>]*>/, "")
|
54
|
+
end
|
55
|
+
if @deplate.top_heading_idx(section.top_heading) != idx
|
56
|
+
navmenu << %{<a class="navbar" href="#{f}">#{v}</a>}
|
57
|
+
else
|
58
|
+
set_at(:pre, :head_title, %{<title>#{v}</title>})
|
59
|
+
navmenu << %{<span class="navbartds">#{v}</span>}
|
60
|
+
end
|
61
|
+
end
|
62
|
+
@deplate.options.navmenu = navmenu.join("\n")
|
63
|
+
|
64
|
+
output_at(:body, slot, %{<div id="navigation">#{@deplate.options.navmenu}</div> <div id="contentframe"> <div id="innercontentframe"> <div id="content">})
|
65
|
+
output_at(:body, :navbar_bottom, %{<br> </div> </div> </div>})
|
66
|
+
end
|
67
|
+
|
68
|
+
alias :format_paragraph :format_paragraph_html
|
69
|
+
end
|
70
|
+
|