docgenerator 2.0.0 → 2.1.0
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/examples/creole_example_tabular.rb +95 -0
- data/examples/docgenerator_example.rb +5 -5
- data/lib/creole/creole2doc.rb +28 -18
- data/lib/creole/creole_inclusions.rb +4 -4
- data/lib/creole/creole_placeholder.rb +4 -1
- data/lib/creole/creole_tabular.rb +173 -155
- data/lib/creole/plugins/rail.rb +118 -119
- data/lib/creole/plugins/struktex.rb +35 -35
- data/lib/creole/plugins/todonotes.rb +8 -1
- data/lib/docgenerator/attribute.rb +160 -160
- data/lib/docgenerator/characters.rb +343 -311
- data/lib/docgenerator/css.rb +167 -167
- data/lib/docgenerator/document.rb +525 -511
- data/lib/docgenerator/element.rb +316 -316
- data/lib/docgenerator/element_meta.rb +114 -114
- data/lib/docgenerator/elements.rb +19 -9
- data/lib/docgenerator/environments.rb +3 -1
- data/lib/docgenerator/lists.rb +177 -174
- data/lib/docgenerator/packages/hyperref.rb +74 -70
- data/lib/docgenerator/packages/multicol.rb +33 -0
- data/lib/docgenerator/packages/scrlettr2.rb +152 -151
- data/lib/docgenerator/packages/todonotes.rb +1 -1
- data/lib/docgenerator/tabular.rb +463 -400
- data/lib/docgenerator/templates/docgenerator_template.rb +94 -84
- data/lib/docgenerator/templates/docgenerator_template.yaml +75 -15
- data/lib/docgenerator.rb +1 -1
- data/lib/wiki2doc/wiki2docgenerator.rb +1 -1
- data/meta_test_and_doc/build__meta.rb +125 -0
- data/meta_test_and_doc/build_doc.rb +333 -0
- data/meta_test_and_doc/build_test.rb +251 -0
- data/meta_test_and_doc/manpages/attachfile.rb +389 -0
- data/meta_test_and_doc/manpages/caption.rb +133 -0
- data/meta_test_and_doc/manpages/characters.rb +3738 -0
- data/meta_test_and_doc/manpages/elements.rb +6851 -0
- data/meta_test_and_doc/manpages/environments.rb +985 -0
- data/meta_test_and_doc/manpages/footnote.rb +439 -0
- data/meta_test_and_doc/manpages/hyperref.rb +605 -0
- data/meta_test_and_doc/manpages/listings.rb +988 -0
- data/meta_test_and_doc/manpages/lists.rb +1463 -0
- data/meta_test_and_doc/manpages/others.rb +129 -0
- data/meta_test_and_doc/manpages/packages.rb +13 -0
- data/meta_test_and_doc/manpages/pdfpages.rb +108 -0
- data/meta_test_and_doc/manpages/readme.rdoc +9 -0
- data/meta_test_and_doc/manpages/scrlettr2.rb +362 -0
- data/meta_test_and_doc/manpages/scrpage2.rb +2028 -0
- data/meta_test_and_doc/manpages/sectioning.rb +2467 -0
- data/meta_test_and_doc/manpages/tables.rb +2088 -0
- data/meta_test_and_doc/manpages/todonotes.rb +235 -0
- data/meta_test_and_doc/manpages/wiki2docgenerator.rb +64 -0
- data/{readme.rd → readme.rdoc} +18 -1
- data/unittest/expected/test_tabular.creole +33 -0
- data/unittest/expected_creole/test_creole_creole1.0test.html +3 -3
- data/unittest/expected_creole/test_creole_creole1.0test.latex +3 -3
- data/unittest/expected_creole/test_creole_creole1.0test.text +3 -3
- data/unittest/expected_creole/test_creole_inline_apostroph.html +6 -0
- data/unittest/expected_creole/test_creole_inline_apostroph.latex +8 -0
- data/unittest/expected_creole/test_creole_inline_apostroph.text +4 -0
- data/unittest/expected_creole/test_creole_input.normsource +12 -12
- data/unittest/expected_creole/test_creole_input.normsource_1.8 +23 -0
- data/unittest/expected_creole/test_creole_links_external_implicit.html +2 -2
- data/unittest/expected_creole/test_creole_links_external_implicit.latex +2 -2
- data/unittest/expected_creole/test_creole_links_external_implicit.text +2 -2
- data/unittest/expected_creole/test_creole_links_implicit_end.html +1 -1
- data/unittest/expected_creole/test_creole_links_implicit_end.latex +1 -1
- data/unittest/expected_creole/test_creole_list_ul.normsource +42 -42
- data/unittest/expected_creole/test_creole_list_ul.normsource_1.8 +83 -0
- data/unittest/expected_creole/test_creole_paragraphs.normsource +15 -15
- data/unittest/expected_creole/test_creole_paragraphs.normsource_1.8 +27 -0
- data/unittest/expected_creole/test_creole_tabular.creole +22 -0
- data/unittest/expected_creole/test_creole_tabular_creole.creole +19 -0
- data/unittest/expected_creole/test_creole_tabular_css.creole +24 -0
- data/unittest/expected_creole/test_creole_tabular_multicols.creole +16 -0
- data/unittest/expected_creole/test_creole_tabular_multicols.html +14 -0
- data/unittest/expected_creole/test_creole_tabular_multicols.latex +16 -0
- data/unittest/expected_creole/test_creole_tabular_with_cell_option.creole +21 -0
- data/unittest/expected_creole/test_creole_toc_level_text.html +2 -2
- data/unittest/expected_creole/test_creole_toc_level_text.latex +2 -2
- data/unittest/expected_packages/test_multicol_3.tex +2 -0
- data/unittest/expected_packages/test_multicol_3_titleline.tex +2 -0
- data/unittest/expected_templates/test_article.tex +23 -0
- data/unittest/expected_templates/test_article_utf8.tex +34 -0
- data/unittest/expected_templates/test_context.miv +18 -0
- data/unittest/expected_templates/test_creole.creole +8 -0
- data/unittest/expected_templates/test_html.html +12 -0
- data/unittest/expected_templates/test_html401_strict.html +14 -0
- data/unittest/expected_templates/test_html401_trans.html +14 -0
- data/unittest/expected_templates/test_html_utf8.html +14 -0
- data/unittest/expected_templates/test_include.tex +17 -0
- data/unittest/expected_templates/test_include_utf8.tex +17 -0
- data/unittest/expected_templates/test_text.txt +6 -0
- data/unittest/expected_templates/test_wiki.wiki +6 -0
- data/unittest/expected_templates/test_xhtml_strict.html +14 -0
- data/unittest/expected_templates/test_xhtml_trans.html +14 -0
- data/unittest/unittest_creole.rb +27 -6
- data/unittest/unittest_creole_placeholders.rb +1 -123
- data/unittest/unittest_creole_tabular.rb +174 -0
- data/unittest/unittest_docgenerator.rb +4 -3
- data/unittest/unittest_docgenerator_characters.rb +4769 -615
- data/unittest/unittest_packages_multicol.rb +84 -0
- data/unittest/unittest_rubycode4doc.rb +0 -1
- data/unittest/unittest_templates.rb +64 -0
- metadata +163 -77
- data/build_test_and_doc.rb +0 -505
- data/manpage_elements.rb +0 -10411
|
@@ -18,60 +18,60 @@ Details see
|
|
|
18
18
|
* Element.add_wiki_output
|
|
19
19
|
* Element.add_text_output
|
|
20
20
|
=end
|
|
21
|
-
class Element
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
class Element
|
|
22
|
+
|
|
23
|
+
#Hash with all ids and their corresponding classes.
|
|
24
|
+
@@ids = Hash.new( )
|
|
25
|
+
|
|
26
26
|
=begin rdoc
|
|
27
27
|
Meta-class for metaprogramming
|
|
28
28
|
=end
|
|
29
|
-
|
|
29
|
+
class << self #Meta-class Element
|
|
30
30
|
=begin rdoc
|
|
31
31
|
This method is called, when a subclass of this class is defined.
|
|
32
32
|
|
|
33
33
|
The class will be added to the element list with class name, converted to a symbol
|
|
34
|
-
(modules are extracted in
|
|
35
|
-
The element
|
|
34
|
+
(modules are extracted in advance).
|
|
35
|
+
The element may be created with element-method.
|
|
36
36
|
=end
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
def inherited( subclass )
|
|
38
|
+
DOCGENERATOR_LOGGER.info("New Element class: #{subclass}") if DOCGENERATOR_LOGGER.debug?
|
|
39
|
+
if subclass.name
|
|
40
|
+
subclass.add_id(subclass.name.split('::').last.downcase.to_sym)
|
|
41
|
+
else
|
|
42
|
+
DOCGENERATOR_LOGGER.warn("New Element class without name: #{subclass}") if DOCGENERATOR_LOGGER.warn?
|
|
43
|
+
end
|
|
43
44
|
end
|
|
44
|
-
end
|
|
45
45
|
=begin rdoc
|
|
46
46
|
Define meta/class accessor to element_ids.
|
|
47
47
|
|
|
48
48
|
@element_ids isd defined in Element.add_id
|
|
49
49
|
|
|
50
50
|
=end
|
|
51
|
-
|
|
51
|
+
def element_ids; @element_ids; end
|
|
52
52
|
=begin rdoc
|
|
53
53
|
Add a new element class or assign another name (synonym) for a class.
|
|
54
54
|
The initial call is made by Element.inherited.
|
|
55
55
|
=end
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
def add_id(id)
|
|
57
|
+
@element_ids ||= []
|
|
58
|
+
if @@ids[ id ] == nil
|
|
59
|
+
DOCGENERATOR_LOGGER.debug("Element id '#{id}' is new for #{self}") if DOCGENERATOR_LOGGER.debug?
|
|
60
|
+
#All new ids are collected
|
|
61
|
+
@@ids[ id ] = self
|
|
62
|
+
@element_ids << id
|
|
63
|
+
elsif @@ids[ id ] == self
|
|
64
|
+
DOCGENERATOR_LOGGER.warn("Element class '#{id}' is defined double: #{self}") if DOCGENERATOR_LOGGER.warn?
|
|
65
|
+
else
|
|
66
|
+
DOCGENERATOR_LOGGER.error("Error: ID '#{id}' is redefined #{@@ids[id]} -> #{self}") if DOCGENERATOR_LOGGER.error?
|
|
67
|
+
@@ids[id] = self
|
|
68
|
+
@element_ids << id
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
#Return a element class.
|
|
72
|
+
def get( name )
|
|
73
|
+
return @@ids[name]
|
|
69
74
|
end
|
|
70
|
-
end
|
|
71
|
-
#Return a element class.
|
|
72
|
-
def get( name )
|
|
73
|
-
return @@ids[name]
|
|
74
|
-
end
|
|
75
75
|
|
|
76
76
|
=begin rdoc
|
|
77
77
|
Set flag, that the element does not support content.
|
|
@@ -110,11 +110,11 @@ Example:
|
|
|
110
110
|
}
|
|
111
111
|
end
|
|
112
112
|
=end
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
def add_attributes( attr )
|
|
114
|
+
attr.each{ |k,a |
|
|
115
|
+
self.add_attribute(k,a)
|
|
116
|
+
}
|
|
117
|
+
end
|
|
118
118
|
=begin rdoc
|
|
119
119
|
Return the attributes for the metaclass.
|
|
120
120
|
=end
|
|
@@ -126,9 +126,9 @@ Return the attributes for the metaclass.
|
|
|
126
126
|
Returns list of attributes.
|
|
127
127
|
Can be used for copying attributes from one class to another class.
|
|
128
128
|
=end
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
def get_attribute_list()
|
|
130
|
+
return self.attributes
|
|
131
|
+
end
|
|
132
132
|
|
|
133
133
|
=begin rdoc
|
|
134
134
|
Add an output routine.
|
|
@@ -189,115 +189,115 @@ Attributes can be accessed with @attr[:key]
|
|
|
189
189
|
#texkeyval add all attributes with flag :texkeyval. (see Attribute#texkeyval?)
|
|
190
190
|
|
|
191
191
|
=end
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
end
|
|
197
|
-
|
|
198
|
-
if block_given?
|
|
199
|
-
if string
|
|
200
|
-
DOCGENERATOR_LOGGER.error("add_output #{target} contains result string and block. Use the block definietion #{self.inspect}") if DOCGENERATOR_LOGGER.error?
|
|
192
|
+
def add_output( target, string = nil, &proc )
|
|
193
|
+
|
|
194
|
+
if ! [ :latex, :context, :html, :text, :wiki, :creole ].include?(target)
|
|
195
|
+
DOCGENERATOR_LOGGER.error("#{self}: Undefined target format #{target}") if DOCGENERATOR_LOGGER.error?
|
|
201
196
|
end
|
|
202
|
-
|
|
203
|
-
if
|
|
204
|
-
if
|
|
205
|
-
DOCGENERATOR_LOGGER.error("add_output #{target}
|
|
206
|
-
elsif proc.parameters.first.first != :opt
|
|
207
|
-
DOCGENERATOR_LOGGER.error("add_output #{target}: Block parameter is not optional #{proc.parameters.inspect} #{self.inspect}") if DOCGENERATOR_LOGGER.error?
|
|
208
|
-
#the optional parameter should have the default {}
|
|
209
|
-
#no way to test it, see http://forum.ruby-portal.de/viewtopic.php?f=22&t=12384
|
|
197
|
+
|
|
198
|
+
if block_given?
|
|
199
|
+
if string
|
|
200
|
+
DOCGENERATOR_LOGGER.error("add_output #{target} contains result string and block. Use the block definietion #{self.inspect}") if DOCGENERATOR_LOGGER.error?
|
|
210
201
|
end
|
|
211
|
-
|
|
212
|
-
if proc.
|
|
213
|
-
|
|
202
|
+
#The (optional) parameter should be {} by default.
|
|
203
|
+
if proc.respond_to?(:parameters) #since ruby 1.9.2
|
|
204
|
+
if proc.parameters.size != 1 #Proc#parameters introduced with ruby 1.9.2
|
|
205
|
+
DOCGENERATOR_LOGGER.error("add_output #{target}: Arity of block not 1 but #{proc.parameters.inspect} #{self.inspect}") if DOCGENERATOR_LOGGER.error?
|
|
206
|
+
elsif proc.parameters.first.first != :opt
|
|
207
|
+
DOCGENERATOR_LOGGER.error("add_output #{target}: Block parameter is not optional #{proc.parameters.inspect} #{self.inspect}") if DOCGENERATOR_LOGGER.error?
|
|
208
|
+
#the optional parameter should have the default {}
|
|
209
|
+
#no way to test it, see http://forum.ruby-portal.de/viewtopic.php?f=22&t=12384
|
|
210
|
+
end
|
|
211
|
+
else #Proc#parameters not supported
|
|
212
|
+
if proc.arity > 1 #makes arity 0 also for optional parameters.
|
|
213
|
+
DOCGENERATOR_LOGGER.error("add_output #{target}: Arity of block not 1 but #{proc.arity} #{self.inspect}") if DOCGENERATOR_LOGGER.error?
|
|
214
|
+
end
|
|
214
215
|
end
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
else #block_given?
|
|
216
|
+
#Define the method.
|
|
217
|
+
define_method( "to_#{target}".to_sym, &proc )
|
|
218
|
+
else #block_given?
|
|
219
219
|
=begin
|
|
220
220
|
Define the output routine, based on a string.
|
|
221
221
|
=end
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
222
|
+
if ! string.kind_of?( String )
|
|
223
|
+
DOCGENERATOR_LOGGER.error("<#{self.inspect}>#add_output: #{string.inspect} is no String")
|
|
224
|
+
end
|
|
225
|
+
cmd = <<-code
|
|
226
|
+
def to_#{target}(options = {})
|
|
227
|
+
o = set_option_defaults(options)
|
|
228
|
+
o[:log].debug("enter to_doc(#{target}) for #{self.inspect}, options: \#{options.keys.inspect}") if o[:log].debug?
|
|
229
|
+
code
|
|
230
|
+
template = string.gsub(/\\/, '\\\\\\')
|
|
231
|
+
template.gsub!(/"/, '\"')
|
|
232
|
+
#define recursive to_doc for content.
|
|
233
|
+
#the closing \} is important. Else you replace '@content.to_latex' with @content.to_doc.to_latex'
|
|
234
|
+
template.gsub!(/@content\}/, "@content.to_doc(#{target.inspect}, o)}")
|
|
235
|
+
cmd << " \"#{template}\"\n"
|
|
236
|
+
cmd << "end\n"
|
|
237
|
+
class_eval( cmd )
|
|
238
|
+
cmd #return cmd for unit test
|
|
239
|
+
end #block_given?
|
|
240
|
+
end
|
|
241
241
|
=begin rdoc
|
|
242
242
|
Define the HTML-tag for the to_html method.
|
|
243
243
|
=end
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
244
|
+
def add_html_tag( tag )
|
|
245
|
+
self.class_eval( "def htmltag()\n'#{tag}'\nend" )
|
|
246
|
+
end
|
|
247
247
|
=begin rdoc
|
|
248
248
|
Define the output routine for html.
|
|
249
249
|
See Element.add_output for details.
|
|
250
250
|
=end
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
251
|
+
def add_html_output( output = nil, &cmd )
|
|
252
|
+
self.add_output(:html, output, &cmd )
|
|
253
|
+
end
|
|
254
254
|
=begin rdoc
|
|
255
255
|
Define the output routine for LaTeX.
|
|
256
256
|
See Element.add_output for details.
|
|
257
257
|
=end
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
258
|
+
def add_latex_output( output = nil, &cmd )
|
|
259
|
+
self.add_output(:latex, output, &cmd )
|
|
260
|
+
end
|
|
261
261
|
=begin rdoc
|
|
262
262
|
Define the output routine for conTeXt.
|
|
263
263
|
See Element.add_output for details.
|
|
264
264
|
=end
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
265
|
+
def add_context_output( output = nil, &cmd )
|
|
266
|
+
self.add_output(:context, output, &cmd )
|
|
267
|
+
end
|
|
268
268
|
=begin rdoc
|
|
269
269
|
Define the output routine for text.
|
|
270
270
|
See Element.add_output for details.
|
|
271
271
|
=end
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
272
|
+
def add_text_output( output = nil, &cmd )
|
|
273
|
+
self.add_output(:text, output, &cmd )
|
|
274
|
+
end
|
|
275
275
|
=begin rdoc
|
|
276
276
|
Define the output routine for wiki.
|
|
277
277
|
See Element.add_output for details.
|
|
278
278
|
=end
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
279
|
+
def add_wiki_output( output = nil, &cmd )
|
|
280
|
+
self.add_output(:wiki, output, &cmd )
|
|
281
|
+
end
|
|
282
282
|
=begin rdoc
|
|
283
283
|
Define the output routine for creole.
|
|
284
284
|
See Element.add_output for details.
|
|
285
285
|
=end
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
end #Meta-class Element
|
|
286
|
+
def add_creole_output( output = nil, &cmd )
|
|
287
|
+
self.add_output(:creole, output, &cmd )
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
end #Meta-class Element
|
|
291
291
|
|
|
292
292
|
=begin rdoc
|
|
293
293
|
Return all id's of the class.
|
|
294
294
|
The ids are filled via Element.add_id
|
|
295
295
|
=end
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
296
|
+
def element_ids()
|
|
297
|
+
#~ myids = []
|
|
298
|
+
#~ @@ids.each{|k,v| myids << k if v == self.class and k.class != Class }
|
|
299
|
+
return self.class.element_ids
|
|
300
|
+
end
|
|
301
301
|
|
|
302
|
-
end #Element
|
|
302
|
+
end #Element
|
|
303
303
|
end #Docgenerator
|
|
@@ -72,7 +72,7 @@ Define Element :htmldummy, :htmlonly
|
|
|
72
72
|
=end
|
|
73
73
|
class Htmldummy < Element
|
|
74
74
|
add_id :htmlonly
|
|
75
|
-
add_html_output '#{@content}'
|
|
75
|
+
add_html_output '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}'
|
|
76
76
|
add_latex_output ''
|
|
77
77
|
add_context_output ''
|
|
78
78
|
add_text_output ''
|
|
@@ -157,7 +157,7 @@ Define Element :meta2
|
|
|
157
157
|
Like Meta, but without name.
|
|
158
158
|
=end
|
|
159
159
|
class Meta2 < Element
|
|
160
|
-
has_no_content ENDTAG
|
|
160
|
+
has_no_content ENDTAG #meta w/o name
|
|
161
161
|
add_attribute :"http-equiv", Attribute.create( [ :html, :required ], nil, 1 )
|
|
162
162
|
add_attribute :content, Attribute.create( [ :html, :required ], nil, 2 )
|
|
163
163
|
add_html_tag 'meta'
|
|
@@ -431,7 +431,7 @@ class Newline < Element
|
|
|
431
431
|
add_id "br/"
|
|
432
432
|
add_id "br"
|
|
433
433
|
add_id :br
|
|
434
|
-
has_no_content ENDTAG
|
|
434
|
+
has_no_content ENDTAG #br
|
|
435
435
|
add_attribute :clear, Attribute.create( [ :html ], ['all'] )
|
|
436
436
|
add_html_tag 'br'
|
|
437
437
|
add_latex_output '#{linebreak(@crbefore)}\newline #{linebreak(@crafter)}'
|
|
@@ -457,7 +457,7 @@ class Hrulefill < Element
|
|
|
457
457
|
add_id "hr/"
|
|
458
458
|
add_id "hr"
|
|
459
459
|
add_id :hr
|
|
460
|
-
has_no_content ENDTAG
|
|
460
|
+
has_no_content ENDTAG #hr
|
|
461
461
|
add_attribute :clear, Attribute.create( [ :html ], ['all'] )
|
|
462
462
|
add_html_tag 'hr'
|
|
463
463
|
add_wiki_output '----'
|
|
@@ -587,6 +587,7 @@ class Div < Element
|
|
|
587
587
|
add_latex_output '#{linebreak(@crbefore)}\begingroup #{linebreak(@crmid)}#{@content}#{linebreak(@crmid)}\endgroup #{linebreak(@crafter)}'
|
|
588
588
|
add_text_output '#{@content}'
|
|
589
589
|
add_wiki_output '#{@content}'
|
|
590
|
+
add_creole_output '#{@content}'
|
|
590
591
|
end #Div
|
|
591
592
|
|
|
592
593
|
|
|
@@ -645,8 +646,9 @@ class Url < Element
|
|
|
645
646
|
add_attributes HTML_ATTR_I18N
|
|
646
647
|
add_attributes HTML_ATTR_EVENTS
|
|
647
648
|
add_attribute :lang, ATTR_LANG
|
|
648
|
-
add_html_output '#{linebreak(@crbefore)}<a href="#{@content}">#{@content}</a>#{linebreak(@crafter)}'
|
|
649
|
+
add_html_output '#{linebreak(@crbefore)}<a href = "#{@content}">#{@content}</a>#{linebreak(@crafter)}'
|
|
649
650
|
add_latex_output '#{linebreak(@crbefore)}\url{#{@content}}#{linebreak(@crafter)}'
|
|
651
|
+
add_text_output '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}'
|
|
650
652
|
end #Url
|
|
651
653
|
|
|
652
654
|
=begin rdoc
|
|
@@ -687,12 +689,16 @@ class Href < Element
|
|
|
687
689
|
def to_wiki( options = {} )
|
|
688
690
|
"[#{@attr[:href].to_s} #{@content.to_doc(:wiki, options)}]"
|
|
689
691
|
end
|
|
692
|
+
def to_creole( options = {} )
|
|
693
|
+
"[[#{@attr[:href].to_s}|#{@content.to_doc(:creole, options)}]]"
|
|
694
|
+
end
|
|
690
695
|
def to_latex( options = {} )
|
|
691
696
|
cmd = linebreak(@crbefore)
|
|
692
697
|
reference = @attr[:href].to_s
|
|
693
|
-
if reference.sub!(
|
|
698
|
+
if reference.sub!(/\A\#/, '') #Internal reference
|
|
694
699
|
cmd << "\\hyperlink{#{reference}}{#{@content.to_doc(:latex, options)}}"
|
|
695
700
|
else #external reference
|
|
701
|
+
#reference may not contain unmasked % or #
|
|
696
702
|
cmd << "\\href{#{reference}}{#{@content.to_doc(:latex, options)}}"
|
|
697
703
|
end
|
|
698
704
|
cmd << linebreak(@crafter)
|
|
@@ -1013,6 +1019,8 @@ class Textbf < Element
|
|
|
1013
1019
|
add_html_tag 'strong'
|
|
1014
1020
|
add_latex_output '#{linebreak(@crbefore)}\textbf{#{@content}}#{linebreak(@crafter)}'
|
|
1015
1021
|
add_wiki_output '#{linebreak(@crbefore)}'''#{@content}'''#{linebreak(@crafter)}'
|
|
1022
|
+
#The additional space is wanted (else ** may be a itemize-list)
|
|
1023
|
+
add_creole_output '#{linebreak(@crbefore)} **#{@content}**#{linebreak(@crafter)}'
|
|
1016
1024
|
add_text_output '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}'
|
|
1017
1025
|
end #Textbf
|
|
1018
1026
|
|
|
@@ -1028,7 +1036,8 @@ Attributes are not defined for this element.
|
|
|
1028
1036
|
class Emph < Element
|
|
1029
1037
|
add_html_tag 'em'
|
|
1030
1038
|
add_latex_output '#{linebreak(@crbefore)}\emph{#{@content}}#{linebreak(@crafter)}'
|
|
1031
|
-
add_wiki_output '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}'
|
|
1039
|
+
#~ add_wiki_output '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}'
|
|
1040
|
+
add_creole_output '#{linebreak(@crbefore)}//#{@content}//#{linebreak(@crafter)}'
|
|
1032
1041
|
add_text_output '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}'
|
|
1033
1042
|
end #Emph
|
|
1034
1043
|
|
|
@@ -1221,7 +1230,7 @@ Attributes may be:
|
|
|
1221
1230
|
=end
|
|
1222
1231
|
class Img < Element
|
|
1223
1232
|
add_id :includegraphics
|
|
1224
|
-
has_no_content ENDTAG
|
|
1233
|
+
has_no_content ENDTAG #img"
|
|
1225
1234
|
add_attributes HTML_ATTR_CORE
|
|
1226
1235
|
add_attribute :align, HTML_ATTR_ALIGN
|
|
1227
1236
|
add_attribute :src, Attribute.create([:html, :latex, :required], [ String ], 1)
|
|
@@ -1259,7 +1268,8 @@ class Verb < Element
|
|
|
1259
1268
|
#fixme font tt
|
|
1260
1269
|
#~ :html => '#{linebreak(@crbefore)}<span style = "display: inline;white-space:pre;font-family:monospace">#{@content}</span>#{linebreak(@crafter)}',
|
|
1261
1270
|
add_html_output '#{linebreak(@crbefore)}<span style = "display: inline;white-space:pre;font-family:monospace">#{@content.join.gsub(/</, \'<\').gsub(/>/, \'>\')}</span>#{linebreak(@crafter)}'
|
|
1262
|
-
add_latex_output '#{linebreak(@crbefore)}\verb|#{@content}|#{linebreak(@crafter)}'
|
|
1271
|
+
add_latex_output '#{linebreak(@crbefore)}\verb|#{@content}|#{linebreak(@crafter)}' #\verb| |
|
|
1272
|
+
#~ add_latex_output '#{linebreak(@crbefore)}\verb{#{@content}}#{linebreak(@crafter)}' #\verb{ }
|
|
1263
1273
|
add_text_output '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}'
|
|
1264
1274
|
end #Verb
|
|
1265
1275
|
|
|
@@ -76,12 +76,14 @@ or
|
|
|
76
76
|
Minipage.new( [ attributes, [content]] )
|
|
77
77
|
Attributes may be:
|
|
78
78
|
* :width:
|
|
79
|
+
* :pos: Optional position for LaTeX
|
|
79
80
|
=end
|
|
80
81
|
class Minipage < Element
|
|
81
82
|
add_attribute :width, Attribute.create( [ :latex, :html ], [ String ] )
|
|
83
|
+
add_attribute :pos, Attribute.create( [ :latex ], [ 'b', 't' ] )
|
|
82
84
|
add_html_tag 'div'
|
|
83
85
|
add_latex_output '#{linebreak(@crbefore)}' +
|
|
84
|
-
'\begin{minipage}{#{@attr[:width]}}' + '#{linebreak(@crmid)}' +
|
|
86
|
+
'\begin{minipage}[#{@attr[:pos]}]{#{@attr[:width]}}' + '#{linebreak(@crmid)}' +
|
|
85
87
|
'#{@content}' + '#{linebreak(@crmid)}' +
|
|
86
88
|
'\end{minipage}' + '#{linebreak(@crafter)}'
|
|
87
89
|
end #Minipage
|