deplate 0.7.3 → 0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS.TXT +3 -0
- data/CHANGES.TXT +248 -175
- data/LICENSE.TXT +0 -0
- data/NEWS.TXT +28 -24
- data/README.TXT +0 -0
- data/TODO.TXT +174 -88
- data/VERSION.TXT +1 -1
- data/bin/deplate +0 -0
- data/bin/deplate.bat +0 -0
- data/etc/deplate.ini +91 -3
- data/lib/action_view/helpers/deplate.rb +45 -0
- data/lib/deplate.rb +6 -1
- data/lib/deplate/abstract-class.rb +0 -0
- data/lib/deplate/bib.rb +576 -0
- data/lib/deplate/builtin.rb +0 -0
- data/lib/deplate/cache.rb +55 -5
- data/lib/deplate/commands.rb +346 -183
- data/lib/deplate/common.rb +209 -48
- data/lib/deplate/converter.rb +12 -6
- data/lib/deplate/core.rb +777 -378
- data/lib/deplate/counters.rb +254 -0
- data/lib/deplate/css/article.css +4 -3
- data/lib/deplate/css/deplate.css +121 -5
- data/lib/deplate/css/heading-navbar.css +0 -0
- data/lib/deplate/css/layout-deplate-print.css +0 -0
- data/lib/deplate/css/layout-deplate.css +0 -0
- data/lib/deplate/css/sans-serif.css +0 -0
- data/lib/deplate/css/serif-e.css +0 -0
- data/lib/deplate/css/serif-rel.css +0 -0
- data/lib/deplate/css/serif.css +9 -3
- data/lib/deplate/css/slides.css +0 -0
- data/lib/deplate/css/tabbar-left.css +0 -0
- data/lib/deplate/css/tabbar-right-ie.css +3 -9
- data/lib/deplate/css/tabbar-right.css +51 -18
- data/lib/deplate/css/tabbar-top.css +7 -1
- data/lib/deplate/css/tabbar.css +0 -0
- data/lib/deplate/css/text-sans-serif.css +0 -0
- data/lib/deplate/css/text-serif.css +0 -0
- data/lib/deplate/define.rb +183 -177
- data/lib/deplate/deplate-string.rb +82 -0
- data/lib/deplate/docbook.rb +236 -128
- data/lib/deplate/elements.rb +584 -417
- data/lib/deplate/etc.rb +163 -101
- data/lib/deplate/external.rb +42 -11
- data/lib/deplate/fmt/dbk-article-4.1.2.rb +0 -0
- data/lib/deplate/fmt/dbk-article.rb +0 -0
- data/lib/deplate/fmt/dbk-book.rb +0 -0
- data/lib/deplate/fmt/dbk-ref.rb +3 -3
- data/lib/deplate/fmt/dbk-slides.rb +0 -0
- data/lib/deplate/fmt/dbk-snippet.rb +0 -0
- data/lib/deplate/fmt/html-snippet.rb +0 -0
- data/lib/deplate/fmt/html.rb +783 -550
- data/lib/deplate/fmt/htmlsite.rb +192 -199
- data/lib/deplate/fmt/htmlslides.rb +0 -0
- data/lib/deplate/fmt/htmlwebsite.rb +3 -3
- data/lib/deplate/fmt/latex-snippet.rb +0 -0
- data/lib/deplate/fmt/latex.rb +242 -83
- data/lib/deplate/fmt/null.rb +32 -0
- data/lib/deplate/fmt/php.rb +4 -4
- data/lib/deplate/fmt/phpsite.rb +6 -5
- data/lib/deplate/fmt/plain.rb +160 -106
- data/lib/deplate/fmt/template.rb +0 -0
- data/lib/deplate/fmt/xhtml10t.rb +0 -0
- data/lib/deplate/formatter-snippet.rb +0 -0
- data/lib/deplate/formatter.rb +613 -301
- data/lib/deplate/input.rb +202 -142
- data/lib/deplate/input/deplate-headings.rb +4 -6
- data/lib/deplate/input/deplate-restricted.rb +15 -9
- data/lib/deplate/input/deplate.rb +2 -4
- data/lib/deplate/input/rdoc.rb +39 -38
- data/lib/deplate/input/template.rb +0 -0
- data/lib/deplate/lib/Makefile.config +29 -0
- data/lib/deplate/lib/latex/deplate.sty +54 -0
- data/lib/deplate/lib/latex/highlight-extra.sty +0 -0
- data/lib/deplate/lib/latex/highlight-typical.sty +0 -0
- data/lib/deplate/lib/php/page-comment.inc.php +216 -0
- data/lib/deplate/lib/tabmenu.js +0 -0
- data/lib/deplate/locale/de.latin1 +155 -17
- data/lib/deplate/locale/ru.koi8-r +0 -0
- data/lib/deplate/locale/zh_cn.gb2312 +0 -0
- data/lib/deplate/macros.rb +133 -82
- data/lib/deplate/messages.rb +6 -4
- data/lib/deplate/metadata.rb +0 -0
- data/lib/deplate/metadata/marshal.rb +0 -0
- data/lib/deplate/metadata/xml.rb +0 -0
- data/lib/deplate/metadata/yaml.rb +0 -0
- data/lib/deplate/mod/anyword.rb +3 -3
- data/lib/deplate/mod/babelfish.rb +4 -4
- data/lib/deplate/mod/code-gvim.rb +8 -4
- data/lib/deplate/mod/code-highlight.rb +3 -3
- data/lib/deplate/mod/colored-log.rb +0 -0
- data/lib/deplate/mod/de.rb +2 -2
- data/lib/deplate/mod/en.rb +0 -0
- data/lib/deplate/mod/endnotes.rb +0 -0
- data/lib/deplate/mod/fr.rb +0 -0
- data/lib/deplate/mod/html-asciimath.rb +0 -0
- data/lib/deplate/mod/html-deplate-button.rb +0 -0
- data/lib/deplate/mod/html-headings-navbar.rb +5 -13
- data/lib/deplate/mod/html-jsmath.rb +39 -0
- data/lib/deplate/mod/html-obfuscate-email.rb +3 -3
- data/lib/deplate/mod/html-sidebar.rb +0 -0
- data/lib/deplate/mod/htmlslides-navbar-fh.rb +3 -3
- data/lib/deplate/mod/iconv.rb +0 -0
- data/lib/deplate/mod/imgurl.rb +4 -4
- data/lib/deplate/mod/inlatex-compound.rb +7 -10
- data/lib/deplate/mod/koma.rb +0 -0
- data/lib/deplate/mod/latex-emph-table-head.rb +0 -0
- data/lib/deplate/mod/latex-styles.rb +7 -4
- data/lib/deplate/mod/latex-verbatim-small.rb +0 -0
- data/lib/deplate/mod/makefile.rb +23 -7
- data/lib/deplate/mod/mark-external-urls.rb +3 -3
- data/lib/deplate/mod/markup-1-warn.rb +10 -10
- data/lib/deplate/mod/markup-1.rb +0 -0
- data/lib/deplate/mod/navbar-png.rb +24 -8
- data/lib/deplate/mod/noindent.rb +0 -0
- data/lib/deplate/mod/numpara.rb +0 -0
- data/lib/deplate/mod/particle-math.rb +4 -4
- data/lib/deplate/mod/php-extra.rb +46 -6
- data/lib/deplate/mod/pstoedit.rb +0 -0
- data/lib/deplate/mod/recode.rb +0 -0
- data/lib/deplate/mod/ru_koi8-r.rb +0 -0
- data/lib/deplate/mod/smart-dash.rb +26 -0
- data/lib/deplate/mod/smiley.rb +69 -7
- data/lib/deplate/mod/soffice.rb +0 -0
- data/lib/deplate/mod/symbols-latin1.rb +14 -23
- data/lib/deplate/mod/symbols-od-utf-8.rb +5 -3
- data/lib/deplate/mod/symbols-plain.rb +5 -35
- data/lib/deplate/mod/symbols-sgml.rb +8 -9
- data/lib/deplate/mod/symbols-utf-8.rb +8 -9
- data/lib/deplate/mod/symbols-xml.rb +5 -9
- data/lib/deplate/mod/syntax-region-alt.rb +5 -5
- data/lib/deplate/mod/utf8.rb +0 -0
- data/lib/deplate/mod/validate-html.rb +0 -0
- data/lib/deplate/mod/xmlrpc.rb +0 -0
- data/lib/deplate/mod/zh-cn-autospace.rb +18 -20
- data/lib/deplate/mod/zh-cn.rb +4 -6
- data/lib/deplate/nukumi2.rb +71 -0
- data/lib/deplate/once-method.rb +0 -0
- data/lib/deplate/output.rb +19 -21
- data/lib/deplate/particles.rb +178 -116
- data/lib/deplate/regions.rb +99 -58
- data/lib/deplate/skeletons.rb +122 -0
- data/lib/deplate/structured.rb +164 -106
- data/lib/deplate/template.rb +67 -43
- data/lib/deplate/templates/html-doc.html +0 -0
- data/lib/deplate/templates/html-left-tabbar-js.html +0 -0
- data/lib/deplate/templates/html-left-tabbar.html +0 -0
- data/lib/deplate/templates/html-tabbar-right-pcomments.php +22 -0
- data/lib/deplate/templates/html-tabbar-right-step.html +24 -0
- data/lib/deplate/templates/html-tabbar-right-table.html +0 -0
- data/lib/deplate/templates/html-tabbar-right.html +2 -4
- data/lib/deplate/templates/html-tabbar-top.html +0 -9
- data/lib/deplate/templates/html-tabbar.html +0 -0
- data/lib/deplate/variables.rb +127 -0
- data/lib/deplate/wiki-markup.rb +99 -33
- data/lib/deplate/xml.rb +18 -18
- data/lib/deplate/zh-cn.rb +0 -0
- data/lib/ps2ppm.rb +0 -0
- data/man/man1/deplate.1 +564 -474
- metadata +201 -186
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# deplate-string.rb
|
3
|
+
# @Author: Thomas Link (samul AT web de)
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 31-Dez-2005.
|
6
|
+
# @Last Change: 03-Jan-2006.
|
7
|
+
# @Revision: 0.39
|
8
|
+
|
9
|
+
require 'deplate/converter'
|
10
|
+
|
11
|
+
class DeplateString < String
|
12
|
+
@deplate_options = Deplate::Core.deplate_options
|
13
|
+
@deplate_options.included = true
|
14
|
+
|
15
|
+
class << self
|
16
|
+
attr_reader :deplate_options
|
17
|
+
end
|
18
|
+
|
19
|
+
attr_reader :deplate_options
|
20
|
+
attr_reader :deplate_variables
|
21
|
+
attr_reader :deplate_converter
|
22
|
+
|
23
|
+
def initialize(*args)
|
24
|
+
@deplate_options = self.class.deplate_options.dup
|
25
|
+
super
|
26
|
+
end
|
27
|
+
|
28
|
+
def with_deplate_options(&block)
|
29
|
+
block.call(@deplate_options)
|
30
|
+
end
|
31
|
+
|
32
|
+
def deplate(fmt)
|
33
|
+
@deplate_converter = Deplate::Converter.new(fmt,
|
34
|
+
:options => @deplate_options)
|
35
|
+
rv = @deplate_converter.convert_string(self)
|
36
|
+
@deplate_variables = @deplate_converter.deplate.variables
|
37
|
+
rv
|
38
|
+
end
|
39
|
+
|
40
|
+
def to_html
|
41
|
+
deplate('html')
|
42
|
+
end
|
43
|
+
|
44
|
+
def to_xhtml
|
45
|
+
deplate('xhtml10t')
|
46
|
+
end
|
47
|
+
|
48
|
+
def to_latex
|
49
|
+
deplate('latex')
|
50
|
+
end
|
51
|
+
|
52
|
+
def to_tex
|
53
|
+
deplate('latex')
|
54
|
+
end
|
55
|
+
|
56
|
+
def to_text
|
57
|
+
deplate('plain')
|
58
|
+
end
|
59
|
+
|
60
|
+
def to_dbk
|
61
|
+
deplate('dbk-article')
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
if __FILE__ == $0
|
67
|
+
puts DeplateString.new('bar __foo__ bar').to_html
|
68
|
+
puts DeplateString.new('bar __foo__ bar').to_xhtml
|
69
|
+
puts DeplateString.new('bar __foo__ bar').to_tex
|
70
|
+
puts DeplateString.new('bar __foo__ bar').to_text
|
71
|
+
puts DeplateString.new('bar __foo__ bar').to_dbk
|
72
|
+
|
73
|
+
t = <<EOF
|
74
|
+
* Introduction
|
75
|
+
|
76
|
+
''deplate'' is a tool for converting wiki-like markup to latex, html, or
|
77
|
+
"html-slides".
|
78
|
+
EOF
|
79
|
+
|
80
|
+
puts DeplateString.new(t).to_html
|
81
|
+
end
|
82
|
+
|
data/lib/deplate/docbook.rb
CHANGED
@@ -3,10 +3,10 @@
|
|
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: 05-Jun-2006.
|
7
|
+
# @Revision: 0.2735
|
8
8
|
|
9
|
-
require
|
9
|
+
require 'deplate/xml'
|
10
10
|
|
11
11
|
# An abstract docbook formatter
|
12
12
|
|
@@ -24,27 +24,27 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
24
24
|
args ||= {}
|
25
25
|
unless no_id
|
26
26
|
id = use_id(args, opts)
|
27
|
-
oid = opts[
|
27
|
+
oid = opts['id']
|
28
28
|
if oid and oid != id
|
29
|
-
log([
|
29
|
+
log(['ID mismatch', id, oid, opts, args], :error)
|
30
30
|
end
|
31
|
-
opts[
|
31
|
+
opts['id'] = encode_id(id) if id
|
32
32
|
# args = args.dup
|
33
|
-
args.delete(
|
33
|
+
args.delete('id')
|
34
34
|
end
|
35
|
-
id = opts[
|
35
|
+
id = opts['id']
|
36
36
|
if id
|
37
37
|
if @consumed_ids.include?(id)
|
38
38
|
opts = opts.dup
|
39
|
-
opts.delete(
|
39
|
+
opts.delete('id')
|
40
40
|
else
|
41
41
|
@consumed_ids << id
|
42
42
|
end
|
43
|
-
opts[
|
43
|
+
opts['xreflabel'] ||= args[:level_as_string]
|
44
44
|
end
|
45
45
|
opts = opts.collect do |k, v|
|
46
46
|
case k
|
47
|
-
when
|
47
|
+
when 'linkend'
|
48
48
|
v = encode_id(v)
|
49
49
|
end
|
50
50
|
if v
|
@@ -53,12 +53,12 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
53
53
|
end
|
54
54
|
if single
|
55
55
|
if @sgml
|
56
|
-
opts <<
|
56
|
+
opts << '></%s' % tag
|
57
57
|
else
|
58
|
-
opts <<
|
58
|
+
opts << '/'
|
59
59
|
end
|
60
60
|
end
|
61
|
-
%{<%s>} % [tag, *opts].compact.join(
|
61
|
+
%{<%s>} % [tag, *opts].compact.join(' ')
|
62
62
|
end
|
63
63
|
|
64
64
|
def get_close(tag, args=nil)
|
@@ -88,19 +88,19 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
88
88
|
author = []
|
89
89
|
if au[:firstname] and au[:surname]
|
90
90
|
firstname = @deplate.parse_and_format(nil, au[:firstname], false)
|
91
|
-
author << formatted_inline(
|
91
|
+
author << formatted_inline('firstname', firstname)
|
92
92
|
surname = @deplate.parse_and_format(nil, au[:surname], false)
|
93
|
-
author << formatted_inline(
|
93
|
+
author << formatted_inline('surname', surname)
|
94
94
|
else
|
95
95
|
surname = @deplate.parse_and_format(nil, au[:name], false)
|
96
|
-
author << formatted_inline(
|
96
|
+
author << formatted_inline('surname', surname)
|
97
97
|
end
|
98
98
|
acc << author.join
|
99
99
|
if au[:note]
|
100
100
|
authorblurb = @deplate.parse_and_format(nil, au[:note], false)
|
101
|
-
acc << formatted_block(
|
101
|
+
acc << formatted_block('authorblurb', formatted_inline('para', authorblurb))
|
102
102
|
end
|
103
|
-
accAuthors << formatted_block(
|
103
|
+
accAuthors << formatted_block('author', join_blocks(acc))
|
104
104
|
end
|
105
105
|
return accAuthors
|
106
106
|
end
|
@@ -111,28 +111,28 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
111
111
|
authors = @deplate.options.author || []
|
112
112
|
accAuthors = docbook_authors(authors)
|
113
113
|
if authors.size > 1
|
114
|
-
accum << formatted_block(
|
114
|
+
accum << formatted_block('authorgroup', join_blocks(accAuthors))
|
115
115
|
else
|
116
116
|
accum += accAuthors
|
117
117
|
end
|
118
118
|
|
119
|
-
date = @deplate.get_clip(
|
120
|
-
date = date ? date.elt : Deplate::Element.get_date(
|
121
|
-
accum << formatted_inline(
|
119
|
+
date = @deplate.get_clip('date')
|
120
|
+
date = date ? date.elt : Deplate::Element.get_date('today', nil)
|
121
|
+
accum << formatted_inline('pubdate', date)
|
122
122
|
|
123
|
-
title = @deplate.get_clip(
|
124
|
-
accum << formatted_inline(
|
123
|
+
title = @deplate.get_clip('title')
|
124
|
+
accum << formatted_inline('title', title.elt) if title
|
125
125
|
|
126
126
|
kw = keywords
|
127
127
|
if kw
|
128
|
-
kws = join_blocks(kw.collect {|kw| formatted_inline(
|
129
|
-
accum << formatted_block(
|
128
|
+
kws = join_blocks(kw.collect {|kw| formatted_inline('keyword', kw)})
|
129
|
+
accum << formatted_block('keywordset', kws)
|
130
130
|
end
|
131
131
|
|
132
|
-
desc = @deplate.variables[
|
132
|
+
desc = @deplate.variables['description']
|
133
133
|
if desc
|
134
|
-
para = formatted_inline(
|
135
|
-
accum << formatted_block(
|
134
|
+
para = formatted_inline('para', plain_text(desc))
|
135
|
+
accum << formatted_block('abstract', para)
|
136
136
|
end
|
137
137
|
|
138
138
|
return join_blocks(accum)
|
@@ -141,12 +141,13 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
141
141
|
def get_doc_def(args)
|
142
142
|
version = @deplate.variables['dbkVersion'] || '4.2'
|
143
143
|
type = @deplate.variables['dbkClass'] || 'article'
|
144
|
+
oldnew = @sgml ? 'sgml' : 'xml'
|
144
145
|
dbkid = @deplate.variables['dbkId'] || "-//OASIS//DTD DocBook XML V#{version}//EN"
|
145
|
-
dtd = @deplate.variables['dbkDtd'] || "http://www.oasis-open.org/docbook
|
146
|
+
dtd = @deplate.variables['dbkDtd'] || "http://www.oasis-open.org/docbook/#{oldnew}/#{version}/docbookx.dtd"
|
146
147
|
docbook_doc_def(args, type, dbkid, dtd)
|
147
148
|
end
|
148
149
|
|
149
|
-
def docbook_doc_def(args, type, pub, dtd, xmlVersion=
|
150
|
+
def docbook_doc_def(args, type, pub, dtd, xmlVersion='1.0')
|
150
151
|
encoding = @encoding ? %{ encoding="%s"} % @encoding : ""
|
151
152
|
|
152
153
|
doc = [%{<?xml version='#{xmlVersion}'#{encoding}?>},
|
@@ -155,15 +156,15 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
155
156
|
]
|
156
157
|
ent = get_entities(args)
|
157
158
|
if ent
|
158
|
-
doc.last <<
|
159
|
-
doc << ent <<
|
159
|
+
doc.last << ' ['
|
160
|
+
doc << ent << ']'
|
160
161
|
end
|
161
|
-
doc.last <<
|
162
|
+
doc.last << '>'
|
162
163
|
return join_blocks(doc.flatten.compact)
|
163
164
|
end
|
164
165
|
|
165
166
|
def get_entities(args)
|
166
|
-
entities = args[:deplate].variables[
|
167
|
+
entities = args[:deplate].variables['dbkEntities']
|
167
168
|
return join_blocks(entities) if entities
|
168
169
|
end
|
169
170
|
|
@@ -172,40 +173,40 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
172
173
|
end
|
173
174
|
|
174
175
|
# get_doc_body_open(args)
|
175
|
-
noop self,
|
176
|
+
noop self, 'get_doc_body_open'
|
176
177
|
|
177
178
|
# get_doc_body_close(args)
|
178
|
-
noop self,
|
179
|
+
noop self, 'get_doc_body_close'
|
179
180
|
|
180
181
|
# Bibliography
|
181
182
|
def get_bib(args, title, bib)
|
182
183
|
acc = [close_headings(1)]
|
183
|
-
title = formatted_inline(
|
184
|
-
acc << formatted_block(
|
184
|
+
title = formatted_inline('title', title) if title and !args['plain']
|
185
|
+
acc << formatted_block('bibliography', join_blocks([title, bib].compact), nil, args)
|
185
186
|
join_blocks(acc)
|
186
187
|
end
|
187
188
|
|
188
189
|
def get_bib_entry(args, key, entry)
|
189
|
-
body = join_blocks([formatted_inline(
|
190
|
-
return formatted_block(
|
190
|
+
body = join_blocks([formatted_inline('abbrev', key), entry])
|
191
|
+
return formatted_block('biblioentry', body, {'id' => encode_id(key)}, args)
|
191
192
|
end
|
192
193
|
|
193
194
|
def docbook_format_authors(type, args, text)
|
194
195
|
if text
|
195
196
|
acc = []
|
196
|
-
for au in authors_split(text)
|
197
|
+
for au in Deplate::Core.authors_split(text)
|
197
198
|
author = Deplate::Names.name_match_sf(au) || Deplate::Names.name_match_fs(au)
|
198
199
|
if author
|
199
|
-
surname = formatted_inline(
|
200
|
-
firstname = formatted_inline(
|
200
|
+
surname = formatted_inline('surname', author[:surname])
|
201
|
+
firstname = formatted_inline('firstname', author[:firstname])
|
201
202
|
acc << formatted_inline(type, surname + firstname)
|
202
203
|
else
|
203
204
|
# is this ok???
|
204
|
-
acc << formatted_inline(type, formatted_inline(
|
205
|
+
acc << formatted_inline(type, formatted_inline('surname', au))
|
205
206
|
end
|
206
207
|
end
|
207
208
|
if acc.size > 1
|
208
|
-
return formatted_block(
|
209
|
+
return formatted_block('authorgroup', join_blocks(acc), nil, args)
|
209
210
|
else
|
210
211
|
return join_blocks(acc)
|
211
212
|
end
|
@@ -213,70 +214,70 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
213
214
|
end
|
214
215
|
|
215
216
|
def get_bib_author(args, text)
|
216
|
-
docbook_format_authors(
|
217
|
+
docbook_format_authors('author', args, text)
|
217
218
|
end
|
218
219
|
|
219
220
|
def get_bib_year(args, text)
|
220
|
-
formatted_inline(
|
221
|
+
formatted_inline('pubdate', text)
|
221
222
|
end
|
222
223
|
|
223
224
|
def get_bib_booktitle(args, text)
|
224
|
-
formatted_inline(
|
225
|
+
formatted_inline('title', text)
|
225
226
|
end
|
226
227
|
|
227
228
|
def get_bib_editor(args, text)
|
228
|
-
docbook_format_authors(
|
229
|
+
docbook_format_authors('editor', args, text)
|
229
230
|
end
|
230
231
|
|
231
232
|
def get_bib_journal(args, text)
|
232
|
-
formatted_inline(
|
233
|
+
formatted_inline('title', text)
|
233
234
|
end
|
234
235
|
|
235
236
|
def get_bib_pages(args, text)
|
236
|
-
formatted_inline(
|
237
|
+
formatted_inline('pagenums', text)
|
237
238
|
end
|
238
239
|
|
239
240
|
def get_bib_publisher(args, text)
|
240
|
-
formatted_block(
|
241
|
+
formatted_block('publisher', formatted_inline('publishername', text), nil, args)
|
241
242
|
end
|
242
243
|
|
243
244
|
def get_bib_title(args, text)
|
244
|
-
formatted_inline(
|
245
|
+
formatted_inline('title', text)
|
245
246
|
end
|
246
247
|
|
247
248
|
def get_bib_volume(args, text)
|
248
|
-
formatted_inline(
|
249
|
+
formatted_inline('volumenum', text)
|
249
250
|
end
|
250
251
|
|
251
252
|
def get_bib_number(args, text)
|
252
|
-
formatted_inline(
|
253
|
+
formatted_inline('issuenum', text)
|
253
254
|
end
|
254
255
|
|
255
256
|
def docbook_bib_sorted_values(entry)
|
256
|
-
keys = [
|
257
|
+
keys = ['author', 'title', 'editor', 'booktitle', 'publisher', 'journal', 'volume', 'number', 'pages', 'year']
|
257
258
|
entry = entry.sort {|a, b| keys.index(a[0]) <=> keys.index(b[0])}
|
258
259
|
entry.collect {|a| a[1..-1]}.flatten
|
259
260
|
end
|
260
261
|
|
261
262
|
def docbook_bib_relation(args, typeEntry, entry, typeContainer, container)
|
262
263
|
e = join_blocks(docbook_bib_sorted_values(entry))
|
263
|
-
e = formatted_block(
|
264
|
+
e = formatted_block('biblioset', e, {'relation' => typeEntry}, args)
|
264
265
|
c = join_blocks(docbook_bib_sorted_values(container))
|
265
|
-
c = formatted_block(
|
266
|
+
c = formatted_block('biblioset', c, {'relation' => typeContainer}, args)
|
266
267
|
return join_blocks([e, c])
|
267
268
|
end
|
268
269
|
|
269
270
|
def get_bib_relation(args, type, entry, container)
|
270
271
|
if type
|
271
272
|
case type.downcase
|
272
|
-
when
|
273
|
-
return docbook_bib_relation(args,
|
274
|
-
when
|
273
|
+
when 'article'
|
274
|
+
return docbook_bib_relation(args, 'article', entry, 'journal', container)
|
275
|
+
when 'incollection'
|
275
276
|
# is this ok???
|
276
|
-
return docbook_bib_relation(args,
|
277
|
+
return docbook_bib_relation(args, 'article', entry, 'book', container)
|
277
278
|
end
|
278
279
|
else
|
279
|
-
args[:self].log([
|
280
|
+
args[:self].log(['No bib entry type given', entry], :error)
|
280
281
|
end
|
281
282
|
join_blocks(docbook_bib_sorted_values(entry.update(container)))
|
282
283
|
end
|
@@ -284,15 +285,15 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
284
285
|
|
285
286
|
# Text
|
286
287
|
def get_block_abstract(args, text)
|
287
|
-
return formatted_block(
|
288
|
+
return formatted_block('abstract', text, nil, args)
|
288
289
|
end
|
289
290
|
|
290
291
|
def get_block_longquote(args, text)
|
291
|
-
return formatted_block(
|
292
|
+
return formatted_block('blockquote', text, nil, args)
|
292
293
|
end
|
293
294
|
|
294
295
|
def get_block_quote(args, text)
|
295
|
-
return formatted_block(
|
296
|
+
return formatted_block('blockquote', text, nil, args)
|
296
297
|
end
|
297
298
|
|
298
299
|
def get_note(args, marker, text)
|
@@ -329,6 +330,69 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
329
330
|
# get_list_of_figures(args, data)
|
330
331
|
noop self, 'get_list_of_figures'
|
331
332
|
|
333
|
+
def listing_prematter(invoker, args, id)
|
334
|
+
case args[:listing]
|
335
|
+
when 'toc'
|
336
|
+
get_open('lot', {:id => id}, args)
|
337
|
+
else
|
338
|
+
args[:id] ||= id
|
339
|
+
get_list_itemize_open(args)
|
340
|
+
end
|
341
|
+
end
|
342
|
+
|
343
|
+
def listing_postmatter(invoker, args)
|
344
|
+
case args[:listing]
|
345
|
+
when 'toc'
|
346
|
+
get_close('lot')
|
347
|
+
else
|
348
|
+
get_list_itemize_close(args)
|
349
|
+
end
|
350
|
+
end
|
351
|
+
|
352
|
+
def listing_title(invoker, args, name)
|
353
|
+
if name
|
354
|
+
# case args[:listing]
|
355
|
+
# when 'toc'
|
356
|
+
formatted_inline('title', @deplate.msg(name))
|
357
|
+
# else
|
358
|
+
# end
|
359
|
+
end
|
360
|
+
end
|
361
|
+
|
362
|
+
def listing_item(invoker, args, prefix, title, heading, level, other_args)
|
363
|
+
v = clean_tags(title)
|
364
|
+
# v = clean_tags(title, 'indexterm')
|
365
|
+
case other_args[:listing]
|
366
|
+
when 'toc'
|
367
|
+
v = [heading.level_as_string, v].join(' ') unless heading.plain_caption?
|
368
|
+
d = @deplate.elt_label(prefix, heading.level_as_string)
|
369
|
+
f = formatted_inline('lotentry', v, {'linkend' => d})
|
370
|
+
s = Deplate::ListItem.new(nil, nil, nil, nil, level, 0, true)
|
371
|
+
s.preformatted = [f, nil]
|
372
|
+
else
|
373
|
+
v = [heading.level_as_string, v].join(' ') unless heading.plain_caption?
|
374
|
+
d = @deplate.elt_label(prefix, heading.level_as_string)
|
375
|
+
s = Deplate::ListItem.new(nil, nil, nil, nil, level, 0, true)
|
376
|
+
f = join_blocks([
|
377
|
+
get_item_itemize_open(args, heading.level_as_string, v),
|
378
|
+
get_item_itemize_close(args)
|
379
|
+
])
|
380
|
+
s.preformatted = [f, nil]
|
381
|
+
end
|
382
|
+
s
|
383
|
+
end
|
384
|
+
|
385
|
+
def clean_tags(text, *tags)
|
386
|
+
if text
|
387
|
+
tags = tags.empty? ? '\w+' : tags.join('|')
|
388
|
+
t = text.gsub(/<(#{tags}).*?>.*?<\/\1>|<(#{tags}).*?\/>/, '')
|
389
|
+
t.gsub!(/^\s*$/, '')
|
390
|
+
t.gsub!(/^\n\s*/, '')
|
391
|
+
t.gsub!(/\n\s*$/, '')
|
392
|
+
t
|
393
|
+
end
|
394
|
+
end
|
395
|
+
|
332
396
|
def get_item_paragraph(args, item, text)
|
333
397
|
formatted_inline('para', text)
|
334
398
|
end
|
@@ -355,6 +419,31 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
355
419
|
join_blocks([idt + get_close('listitem'), get_close('varlistentry')])
|
356
420
|
end
|
357
421
|
|
422
|
+
# tasks
|
423
|
+
def get_list_task_open(args)
|
424
|
+
get_list_description_open(args)
|
425
|
+
end
|
426
|
+
|
427
|
+
def get_list_task_close(args)
|
428
|
+
get_list_description_close(args)
|
429
|
+
end
|
430
|
+
|
431
|
+
def get_item_task_open(args, item, text, opts)
|
432
|
+
pri = opts[:priority]
|
433
|
+
cat = opts[:category]
|
434
|
+
done = opts[:done] ? 'done' : nil
|
435
|
+
due = opts[:due]
|
436
|
+
task = [cat, pri]
|
437
|
+
task << " #{due}" if due
|
438
|
+
# task = ['{', task, '}'].join
|
439
|
+
task = task.join
|
440
|
+
get_item_description_open(args, task, text)
|
441
|
+
end
|
442
|
+
|
443
|
+
def get_item_task_close(args)
|
444
|
+
get_item_description_close(args)
|
445
|
+
end
|
446
|
+
|
358
447
|
# itemize
|
359
448
|
def get_list_itemize_open(args)
|
360
449
|
get_open('itemizedlist', nil, args)
|
@@ -432,11 +521,16 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
432
521
|
end
|
433
522
|
|
434
523
|
def get_image(args, file, fnroot, inline=false)
|
524
|
+
if file =~ Deplate::HyperLink::Url.rx
|
525
|
+
Deplate::Core.log([%{Can't include remote images in current document}, file], :error)
|
526
|
+
file = File.basename(file)
|
527
|
+
end
|
435
528
|
o = {}
|
436
529
|
w = args['w'] || args['width']
|
437
530
|
# h = args['h'] || args['heigth']
|
438
531
|
unless w
|
439
|
-
|
532
|
+
ifile = Deplate::Core.file_join(@deplate.options.dir, file)
|
533
|
+
desc = Deplate::External.image_dimension(ifile)
|
440
534
|
w, h, bx, by = desc[:bw]
|
441
535
|
end
|
442
536
|
o['width'] = w if w
|
@@ -469,7 +563,8 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
469
563
|
|
470
564
|
# Footnote
|
471
565
|
def get_footnote(args, label, text)
|
472
|
-
formatted_block('footnote', formatted_inline('para', text), {'id'=>label}, args)
|
566
|
+
# formatted_block('footnote', formatted_inline('para', text), {'id'=>label}, args)
|
567
|
+
formatted_block('footnote', text, {'id'=>label}, args)
|
473
568
|
end
|
474
569
|
|
475
570
|
def get_footnote_ref(args, label, text)
|
@@ -482,26 +577,39 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
482
577
|
hd = @headings[level - 1]
|
483
578
|
id = encode_id(args[:id])
|
484
579
|
if hd
|
485
|
-
plain
|
486
|
-
|
580
|
+
plain = @deplate.variables['headings'] == 'plain' || args['plain']
|
581
|
+
no_id = id.empty?
|
582
|
+
if no_id or plain
|
583
|
+
id = encode_id(args['shortcaption'] || text)
|
584
|
+
if no_id
|
585
|
+
args[:id] = id if no_id
|
586
|
+
args[:self].log(['Internal error: No ID', @args[:self].class, text, label], :error)
|
587
|
+
end
|
588
|
+
end
|
487
589
|
ho = {}
|
488
|
-
ho['id'] = id unless id.empty?
|
590
|
+
# ho['id'] = id unless id.empty?
|
591
|
+
ho['id'] = id
|
489
592
|
if plain
|
490
593
|
xreflabel = id
|
491
594
|
ho['xreflabel'] = xreflabel
|
492
595
|
else
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
596
|
+
xlab = args[:level_as_string]
|
597
|
+
if xlab
|
598
|
+
ho['label'] = xlab.split(/\./).last
|
599
|
+
# ho['label'] = args[:level_as_string]
|
600
|
+
xreflabel = encode_id(xlab)
|
601
|
+
ho['xreflabel'] = xreflabel
|
602
|
+
else
|
603
|
+
args[:self].log(['Internal error', 'No label'], :error)
|
604
|
+
end
|
497
605
|
end
|
498
606
|
hd = get_open(hd, ho, args)
|
499
|
-
unless id.empty?
|
607
|
+
# unless id.empty?
|
500
608
|
to = {'id' => "#{id}_title"}
|
501
609
|
to['xreflabel'] = xreflabel
|
502
|
-
end
|
610
|
+
# end
|
503
611
|
ti = formatted_inline('title', text, to, args)
|
504
|
-
return join_blocks([hd, ti, label])
|
612
|
+
return join_blocks([hd, indent_text(ti), indent_text(label)])
|
505
613
|
else
|
506
614
|
label << id unless id.empty?
|
507
615
|
get_paragraph(args, text, label)
|
@@ -552,33 +660,33 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
552
660
|
|
553
661
|
|
554
662
|
# Labels, References
|
555
|
-
def get_label(args, label, mode, text=
|
663
|
+
def get_label(args, label, mode, text='')
|
556
664
|
case mode
|
557
665
|
when :after, :closeOpen
|
558
666
|
text
|
559
667
|
else
|
560
|
-
join_inline([formatted_single(
|
668
|
+
join_inline([formatted_single('anchor', {'id' => encode_id(label)}), text])
|
561
669
|
end
|
562
670
|
end
|
563
671
|
|
564
672
|
def get_ref(args, file, label, heading=nil)
|
565
673
|
if label
|
566
|
-
|
674
|
+
if file.empty? and heading
|
567
675
|
if @sgml
|
568
676
|
o = @deplate.label_aliases[label]
|
569
677
|
text = o.args[:level_as_string]
|
570
|
-
formatted_inline(
|
678
|
+
formatted_inline('link', text, {'linkend' => label}, args)
|
571
679
|
else
|
572
|
-
opts = {
|
573
|
-
return formatted_single(
|
680
|
+
opts = {'linkend' => encode_id(label), 'endterm' => "#{heading}_title"}
|
681
|
+
return formatted_single('xref', opts, args)
|
574
682
|
end
|
575
683
|
else
|
576
|
-
url = [file, label].join(
|
577
|
-
return formatted_inline(
|
684
|
+
url = [file, label].join('#')
|
685
|
+
return formatted_inline('ulink', text, {'url' => 'file://%s' % url}, args)
|
578
686
|
end
|
579
687
|
else
|
580
|
-
args[:self].log(
|
581
|
-
return
|
688
|
+
args[:self].log('No label', :error)
|
689
|
+
return ''
|
582
690
|
end
|
583
691
|
end
|
584
692
|
|
@@ -591,12 +699,12 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
591
699
|
%{</para><para>}
|
592
700
|
else
|
593
701
|
log(["Don't know how to insert linebreaks", container.class], :error)
|
594
|
-
|
702
|
+
''
|
595
703
|
end
|
596
704
|
end
|
597
705
|
|
598
706
|
def get_pagebreak(args)
|
599
|
-
formatted_single(
|
707
|
+
formatted_single('beginpage', nil, args)
|
600
708
|
end
|
601
709
|
|
602
710
|
def get_paragraph(args, text, labels=[])
|
@@ -606,133 +714,133 @@ class Deplate::Formatter::Docbook < Deplate::Formatter::XML
|
|
606
714
|
end
|
607
715
|
acc << text
|
608
716
|
text = join_blocks(acc)
|
609
|
-
return formatted_inline(
|
717
|
+
return formatted_inline('para', text, nil, args)
|
610
718
|
end
|
611
719
|
|
612
720
|
|
613
721
|
# Table
|
614
722
|
def get_table(args, title, table)
|
615
723
|
opts = {}
|
616
|
-
frame = args[
|
724
|
+
frame = args['frame'] || @deplate.variables['tableFrame'] || 'topbot'
|
617
725
|
if frame
|
618
|
-
opts[
|
726
|
+
opts['frame'] = frame
|
619
727
|
end
|
620
728
|
if title
|
621
|
-
formatted_block(
|
729
|
+
formatted_block('table', join_blocks([title, table]), opts, args)
|
622
730
|
else
|
623
|
-
formatted_block(
|
731
|
+
formatted_block('informaltable', table, opts, args)
|
624
732
|
end
|
625
733
|
end
|
626
734
|
|
627
735
|
def get_table_order
|
628
|
-
[
|
736
|
+
['head', 'foot', 'body']
|
629
737
|
end
|
630
738
|
|
631
739
|
def get_table_caption(args, title, text, capAbove)
|
632
|
-
formatted_inline(
|
740
|
+
formatted_inline('title', text)
|
633
741
|
end
|
634
742
|
|
635
743
|
def get_table_group_open(args, n)
|
636
|
-
acc = [get_open(
|
744
|
+
acc = [get_open('tgroup', {'cols' => n}, args, :no_id => true)]
|
637
745
|
|
638
|
-
colwidths = Deplate::Core.props(args[
|
639
|
-
coljusts = Deplate::Core.props(args[
|
746
|
+
colwidths = Deplate::Core.props(args['cols'], 'w')
|
747
|
+
coljusts = Deplate::Core.props(args['cols'], 'j')
|
640
748
|
names = []
|
641
749
|
for i in 0 .. n - 1
|
642
750
|
col = {}
|
643
751
|
|
644
752
|
name = "c#{i}"
|
645
|
-
col[
|
753
|
+
col['colname'] = name
|
646
754
|
names << name
|
647
755
|
|
648
756
|
w = colwidths[i]
|
649
757
|
if w and !w.empty?
|
650
|
-
col[
|
758
|
+
col['colwidth'] = w
|
651
759
|
end
|
652
760
|
|
653
761
|
j = coljusts[i]
|
654
762
|
if j and !j.empty?
|
655
|
-
col[
|
763
|
+
col['align'] = j
|
656
764
|
end
|
657
|
-
acc << formatted_single(
|
765
|
+
acc << formatted_single('colspec', col, args, true)
|
658
766
|
end
|
659
767
|
args[:colnames] = names
|
660
768
|
join_blocks(acc)
|
661
769
|
end
|
662
770
|
|
663
771
|
def get_table_group_close(args)
|
664
|
-
get_close(
|
772
|
+
get_close('tgroup')
|
665
773
|
end
|
666
774
|
|
667
775
|
def get_table_head_open(args)
|
668
|
-
get_open(
|
776
|
+
get_open('thead', nil, args, :no_id => true)
|
669
777
|
end
|
670
778
|
|
671
779
|
def get_table_head_close(args)
|
672
|
-
get_close(
|
780
|
+
get_close('thead')
|
673
781
|
end
|
674
782
|
|
675
783
|
def get_table_foot_open(args)
|
676
|
-
get_open(
|
784
|
+
get_open('tfoot', nil, args, :no_id => true)
|
677
785
|
end
|
678
786
|
|
679
787
|
def get_table_foot_close(args)
|
680
|
-
get_close(
|
788
|
+
get_close('tfoot')
|
681
789
|
end
|
682
790
|
|
683
791
|
def get_table_body_open(args)
|
684
|
-
get_open(
|
792
|
+
get_open('tbody', nil, args, :no_id => true)
|
685
793
|
end
|
686
794
|
|
687
795
|
def get_table_body_close(args)
|
688
|
-
get_close(
|
796
|
+
get_close('tbody')
|
689
797
|
end
|
690
798
|
|
691
799
|
def get_table_head_cell(args, text, rown, coln, span_x=1, span_y=1)
|
692
800
|
entry_args = {}
|
693
801
|
if span_y > 1
|
694
|
-
entry_args[
|
802
|
+
entry_args['morerows'] = span_y - 1
|
695
803
|
end
|
696
|
-
formatted_block(
|
804
|
+
formatted_block('entry', formatted_inline('para', text), entry_args)
|
697
805
|
end
|
698
806
|
|
699
807
|
def get_table_cell(args, text, rown, coln, span_x=1, span_y=1)
|
700
808
|
entry_args = {}
|
701
809
|
if span_y > 1
|
702
|
-
entry_args[
|
810
|
+
entry_args['morerows'] = span_y - 1
|
703
811
|
end
|
704
812
|
if span_x > 1
|
705
813
|
start = args[:colnames][coln]
|
706
|
-
entry_args[
|
707
|
-
entry_args[
|
814
|
+
entry_args['namest'] = start
|
815
|
+
entry_args['nameend'] = args[:colnames][coln + span_x - 1]
|
708
816
|
end
|
709
|
-
formatted_block(
|
817
|
+
formatted_block('entry', formatted_inline('para', text), entry_args)
|
710
818
|
end
|
711
819
|
|
712
820
|
def get_table_note(args, note)
|
713
|
-
formatted_inline(
|
821
|
+
formatted_inline('para', note)
|
714
822
|
end
|
715
823
|
|
716
824
|
def get_table_row_open(args)
|
717
|
-
get_open(
|
825
|
+
get_open('row', nil, args, :no_id => true)
|
718
826
|
end
|
719
827
|
|
720
828
|
def get_table_row_close(args)
|
721
|
-
get_close(
|
829
|
+
get_close('row')
|
722
830
|
end
|
723
831
|
|
724
832
|
|
725
833
|
# Title
|
726
|
-
noop self,
|
834
|
+
noop self, 'format_title'
|
727
835
|
# get_title(args, data, pagebreak)
|
728
|
-
noop self,
|
836
|
+
noop self, 'get_title'
|
729
837
|
# get_title_author(args, text)
|
730
|
-
noop self,
|
838
|
+
noop self, 'get_title_author'
|
731
839
|
# get_title_authornote(args, text)
|
732
|
-
noop self,
|
840
|
+
noop self, 'get_title_authornote'
|
733
841
|
# get_title_date(args, text)
|
734
|
-
noop self,
|
842
|
+
noop self, 'get_title_date'
|
735
843
|
# get_title_title(args, text)
|
736
|
-
noop self,
|
844
|
+
noop self, 'get_title_title'
|
737
845
|
end
|
738
846
|
|