docgenerator 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|