docgenerator 1.1.1 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/examples/docgenerator_example.rb +34 -17
- data/examples/docgenerator_example_footnote.rb +82 -61
- data/examples/docgenerator_example_list.rb +24 -18
- data/examples/docgenerator_example_restrictions.rb +17 -27
- data/examples/docgenerator_example_tabular.rb +20 -20
- data/examples/docgenerator_example_tripfalls.rb +28 -20
- data/examples/results/readme +1 -0
- data/examples/results_expected/docgenerator_example.html +39 -0
- data/examples/results_expected/docgenerator_example.pdf +0 -0
- data/examples/results_expected/docgenerator_example.tex +56 -0
- data/examples/results_expected/docgenerator_example_footnote.html +40 -0
- data/examples/results_expected/docgenerator_example_footnote.pdf +0 -0
- data/examples/results_expected/docgenerator_example_footnote.tex +50 -0
- data/examples/results_expected/docgenerator_example_list.html +18 -0
- data/examples/results_expected/docgenerator_example_list.pdf +0 -0
- data/examples/results_expected/docgenerator_example_list.tex +46 -0
- data/examples/results_expected/docgenerator_example_restrictions.html +22 -0
- data/examples/results_expected/docgenerator_example_restrictions.pdf +0 -0
- data/examples/results_expected/docgenerator_example_restrictions.tex +31 -0
- data/examples/results_expected/docgenerator_example_tabular.html +37 -0
- data/examples/results_expected/docgenerator_example_tabular.pdf +0 -0
- data/examples/results_expected/docgenerator_example_tabular.tex +41 -0
- data/examples/results_expected/docgenerator_example_tripfalls.html +27 -0
- data/examples/results_expected/docgenerator_example_tripfalls.pdf +0 -0
- data/examples/results_expected/docgenerator_example_tripfalls.tex +31 -0
- data/lib/creole/creole2doc.rb +291 -140
- data/lib/creole/creole_inclusion_and_plugins.rb +142 -39
- data/lib/creole/creole_placeholder.rb +92 -30
- data/lib/creole/creole_tabular.rb +119 -20
- data/lib/docgenerator.rb +209 -118
- data/lib/{docgenerator_attribute.rb → docgenerator/attribute.rb} +2 -1
- data/lib/{docgenerator_characters.rb → docgenerator/characters.rb} +75 -6
- data/lib/{docgenerator_css.rb → docgenerator/css.rb} +0 -0
- data/lib/docgenerator/document.rb +588 -0
- data/lib/{docgenerator_element.rb → docgenerator/element.rb} +52 -80
- data/lib/{docgenerator_elements.rb → docgenerator/elements.rb} +43 -17
- data/lib/{docgenerator_environments.rb → docgenerator/environments.rb} +20 -6
- data/lib/{docgenerator_footnote.rb → docgenerator/footnote.rb} +22 -18
- data/lib/{docgenerator_lists.rb → docgenerator/lists.rb} +17 -1
- data/lib/{docgenerator_sections.rb → docgenerator/sections.rb} +9 -1
- data/lib/docgenerator/standard.rb +81 -0
- data/lib/{docgenerator_tabular.rb → docgenerator/tabular.rb} +9 -5
- data/lib/packages/docgenerator_listings.rb +9 -5
- data/lib/packages/docgenerator_pdfpages.rb +17 -11
- data/lib/packages/docgenerator_url.rb +0 -2
- data/lib/templates/docgenerator_template.rb +66 -29
- data/lib/templates/docgenerator_template.yaml +18 -0
- data/lib/wiki2doc/wiki2docgenerator.rb +6 -2
- data/readme.rd +132 -0
- data/unittest/expected/test_document_usepackage_undefined.log +2 -0
- data/unittest/expected/test_enumerate.context +4 -0
- data/unittest/expected/test_footnote.html +4 -4
- data/unittest/expected/test_footnote.latex +4 -4
- data/unittest/expected/test_footnote_group.html +6 -6
- data/unittest/expected/test_footnote_group.latex +6 -6
- data/unittest/expected/test_href.html +2 -2
- data/unittest/expected/test_href.latex +2 -2
- data/unittest/expected/test_href.text +2 -2
- data/unittest/expected/test_itemize.context +4 -0
- data/unittest/expected/test_runtex.stdout +3 -0
- data/unittest/expected/test_runtex_2.stdout +3 -0
- data/unittest/expected/test_section.context +20 -0
- data/unittest/expected/test_tabular.html +2 -2
- data/unittest/expected/test_verbatim.html +3 -0
- data/unittest/expected/test_verbatim.latex +4 -0
- data/unittest/expected/test_verbatim_array.html +1 -0
- data/unittest/expected/test_verbatim_array.latex +2 -0
- data/unittest/expected_creole/test_creole_characters_all.html +12 -5
- data/unittest/expected_creole/test_creole_characters_all.latex +20 -6
- data/unittest/expected_creole/test_creole_comment.context +11 -0
- data/unittest/expected_creole/test_creole_comment.creole +12 -0
- data/unittest/expected_creole/test_creole_comment.html +9 -0
- data/unittest/expected_creole/test_creole_comment.latex +11 -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 +4 -4
- data/unittest/expected_creole/test_creole_ignore.html +3 -0
- data/unittest/expected_creole/test_creole_ignore.latex +4 -0
- data/unittest/expected_creole/test_creole_ignore.text +2 -0
- data/unittest/expected_creole/test_creole_input.normsource +12 -12
- data/unittest/expected_creole/test_creole_input_file_simple.html +15 -0
- data/unittest/expected_creole/test_creole_input_file_simple_readlines.html +15 -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.creole +4 -0
- data/unittest/expected_creole/test_creole_links_implicit_end.html +3 -0
- data/unittest/expected_creole/test_creole_links_implicit_end.latex +4 -0
- data/unittest/expected_creole/test_creole_list_ul.normsource +42 -42
- data/unittest/expected_creole/test_creole_mix_titles_list.html +10 -0
- data/unittest/expected_creole/test_creole_mix_titles_list.latex +18 -0
- data/unittest/expected_creole/test_creole_mix_titles_list.text +12 -0
- data/unittest/expected_creole/test_creole_paragraphs.normsource +15 -15
- data/unittest/expected_creole/test_creole_pictures_css.html +4 -1
- data/unittest/expected_creole/test_creole_pictures_css.latex +5 -1
- data/unittest/expected_creole/test_creole_pictures_longdesc.html +3 -0
- data/unittest/expected_creole/test_creole_pictures_width.html +3 -0
- data/unittest/expected_creole/test_creole_pictures_width.latex +4 -0
- data/unittest/expected_creole/test_creole_short_html.html +3 -0
- data/unittest/expected_creole/test_creole_short_html.latex +4 -0
- data/unittest/expected_creole/test_creole_short_html.text +2 -0
- data/unittest/expected_creole/test_creole_shy.creole +6 -0
- data/unittest/expected_creole/test_creole_shy.html +6 -0
- data/unittest/expected_creole/test_creole_shy.latex +8 -0
- data/unittest/expected_creole/test_creole_shy.text +4 -0
- data/unittest/expected_creole/test_creole_tabular_with_cell_option.html +20 -0
- data/unittest/expected_creole/test_creole_toc.html +3 -1
- data/unittest/expected_creole/test_creole_toc.latex +1 -1
- data/unittest/expected_creole/test_creole_toc.text +1 -1
- data/unittest/expected_creole/test_creole_toc_level.html +7 -0
- data/unittest/expected_creole/test_creole_toc_level.latex +10 -0
- data/unittest/expected_creole/test_creole_toc_level.text +3 -0
- data/unittest/expected_creole/test_creole_toc_level_text.html +8 -0
- data/unittest/expected_creole/test_creole_toc_level_text.latex +9 -0
- data/unittest/expected_creole/test_creole_verbatim.html +1 -1
- data/unittest/expected_creole/test_creole_verbatim.latex +1 -1
- data/unittest/expected_creole/test_creole_verbatim.text +1 -1
- data/unittest/expected_creole/test_creole_verbatim_inline.html +1 -1
- data/unittest/expected_creole/test_creole_verbatim_inline.latex +1 -1
- data/unittest/expected_wiki/test_wiki_description.html +5 -5
- data/unittest/expected_wiki/test_wiki_description.latex +5 -5
- data/unittest/expected_wiki/test_wiki_description.text +5 -5
- data/unittest/expected_wiki/test_wiki_description.wiki +5 -5
- data/unittest/test_rakefile_docgenerator.rb +43 -0
- data/unittest/unittest_creole2doc.rb +415 -27
- data/unittest/unittest_docgenerator.rb +256 -23
- data/unittest/unittest_docgenerator_runtex.rb +83 -0
- data/unittest/unittest_versions.rb +44 -0
- data/unittest/unittest_wiki2doc.rb +28 -27
- metadata +473 -106
- data/lib/docgenerator_document.rb +0 -525
- data/lib/packages/docgenerator_beamer.rb +0 -253
- data/lib/yaml2presentation/yaml2presentation.rb +0 -1091
- data/unittest/expected/beamer_01_article.tex +0 -13
- data/unittest/expected/beamer_01_attachment.tex +0 -15
- data/unittest/expected/beamer_01_doc.html +0 -13
- data/unittest/expected/beamer_01_doc.tex +0 -18
- data/unittest/expected/beamer_01_notes_only.tex +0 -13
- data/unittest/expected/beamer_01_notes_onlyslideswithnotes.tex +0 -13
- data/unittest/expected/beamer_01_notes_show.tex +0 -13
- data/unittest/expected/beamer_01_presentation.tex +0 -13
- data/unittest/expected/beamer_02_doc.html +0 -29
- data/unittest/expected/beamer_02_doc.tex +0 -34
- data/unittest/expected/beamer_block.html +0 -1
- data/unittest/expected/beamer_block.latex +0 -1
- data/unittest/expected/beamer_doc_fragile_doc.tex +0 -33
- data/unittest/expected/beamer_doc_html_overview_with_detailpic_and_text_doc.html +0 -34
- data/unittest/expected/beamer_doc_html_overview_with_detailpic_doc.html +0 -34
- data/unittest/expected/beamer_doc_key_doc.html +0 -20
- data/unittest/expected/beamer_doc_key_doc.tex +0 -29
- data/unittest/expected/beamer_doc_note_doc.html +0 -30
- data/unittest/expected/beamer_doc_note_doc.tex +0 -37
- data/unittest/expected/beamer_doc_pic_bottom_doc.html +0 -24
- data/unittest/expected/beamer_doc_pic_doc.html +0 -24
- data/unittest/expected/beamer_doc_pic_doc.tex +0 -28
- data/unittest/expected/beamer_doc_pic_left_doc.html +0 -24
- data/unittest/expected/beamer_doc_pic_left_doc.tex +0 -28
- data/unittest/expected/beamer_doc_pic_ratio_doc.tex +0 -29
- data/unittest/expected/beamer_doc_pic_right_doc.html +0 -24
- data/unittest/expected/beamer_doc_pic_right_doc.tex +0 -28
- data/unittest/expected/beamer_doc_pic_top_doc.html +0 -24
- data/unittest/expected/beamer_frame.html +0 -5
- data/unittest/expected/beamer_frame.tex +0 -11
- data/unittest/expected/beamer_frame_fragile.tex +0 -7
- data/unittest/expected/beamer_frame_id.html +0 -1
- data/unittest/expected/beamer_frame_id.tex +0 -4
- data/unittest/expected/beamer_framepic.html +0 -5
- data/unittest/expected/beamer_framepic.latex +0 -1
- data/unittest/expected/beamer_framepic_link.html +0 -5
- data/unittest/expected/beamer_framepic_link.latex +0 -1
- data/unittest/expected/beamer_frametitle.html +0 -1
- data/unittest/expected/beamer_frametitle.latex +0 -1
- data/unittest/expected/beamer_note.html +0 -1
- data/unittest/expected/beamer_note.latex +0 -1
- data/unittest/expected_privat/test_creole_test_document.html +0 -6
- data/unittest/expected_wiki/test_wiki_amazon.html +0 -10
- data/unittest/expected_wiki/test_wiki_link.log +0 -3
- data/unittest/test_docgenerator.rb +0 -107
- data/unittest/unittest_yaml2pres.rb +0 -336
@@ -1,70 +1,4 @@
|
|
1
|
-
#
|
2
|
-
#- to_doc
|
3
|
-
#- to_html
|
4
|
-
#- to_latex
|
5
|
-
#- to_wiki
|
6
|
-
#- to_text
|
7
|
-
#Redefine is_a?:
|
8
|
-
#Return true, when you test with a symbol.
|
9
|
-
class Object
|
10
|
-
alias :old_is_a? :is_a?
|
11
|
-
#Redefine the standard is_a?
|
12
|
-
#Returns also true, if one of the ids is in testvalue
|
13
|
-
def is_a?( testvalue)
|
14
|
-
if testvalue.old_is_a?(Symbol)
|
15
|
-
if old_is_a?(Element)
|
16
|
-
return ids.include?(testvalue)
|
17
|
-
else
|
18
|
-
return false
|
19
|
-
end
|
20
|
-
else
|
21
|
-
return old_is_a?(testvalue)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
#
|
25
|
-
# to_doc returns the object as a string.
|
26
|
-
# will be redefined for Element
|
27
|
-
#
|
28
|
-
def to_doc(target, options = {})
|
29
|
-
o = Docgenerator_logger.set_option_defaults(options)
|
30
|
-
str = ""
|
31
|
-
if self.is_a?(Element) and ! self.respond_to?(:to_doc)
|
32
|
-
o[:log].error( "Missing to_doc routine for #{self.class}") if o[:log].error?
|
33
|
-
end
|
34
|
-
if self.respond_to?(:to_str)
|
35
|
-
str << self.to_str
|
36
|
-
else
|
37
|
-
str << self.to_s
|
38
|
-
end
|
39
|
-
str
|
40
|
-
end
|
41
|
-
def to_text(options = {}); to_doc(:text, options); end
|
42
|
-
def to_latex(options = {}); to_doc(:latex, options); end
|
43
|
-
def to_html(options = {}); to_doc(:html, options); end
|
44
|
-
def to_wiki(options = {}); to_doc(:wiki, options); end
|
45
|
-
end
|
46
|
-
|
47
|
-
class Array
|
48
|
-
#
|
49
|
-
# Returns the element for each parameter
|
50
|
-
#
|
51
|
-
def to_doc(target, options = {})
|
52
|
-
o = Docgenerator_logger.set_option_defaults(options)
|
53
|
-
o[:log].debug("enter to_doc(#{target}) for Array, options: #{options.keys.inspect}") if o[:log].debug?
|
54
|
-
str = ""
|
55
|
-
self.each{|el|
|
56
|
-
begin
|
57
|
-
str << el.to_doc(target, o)
|
58
|
-
rescue ArgumentError
|
59
|
-
o[:log].fatal("ArgumentError to_doc for element <#{el.class}>") if o[:log].fatal?
|
60
|
-
str << el.to_doc(target)
|
61
|
-
end
|
62
|
-
}
|
63
|
-
return str
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
|
1
|
+
#encoding: utf-8
|
68
2
|
#This class defines possible elements of a document.
|
69
3
|
#For each type of elements a class is defined.
|
70
4
|
#The definition can be done explicite or generic with Element.create.
|
@@ -77,17 +11,13 @@ end
|
|
77
11
|
#But the error is done, when the element is created.
|
78
12
|
#When you redefine ELEMENTS_TRACE, some tracing information are stored during creation.
|
79
13
|
class Element
|
14
|
+
include Docgenerator #get VERSION
|
80
15
|
#Hash with all ids and their corresponding classes.
|
81
16
|
@@ids = Hash.new( )
|
82
17
|
#All attributes are stored in this hash.
|
83
18
|
#The key is the corresponding class.
|
84
19
|
@@attr = { Element => {} }
|
85
|
-
|
86
|
-
#The key is the corresponding class.
|
87
|
-
@@log = false
|
88
|
-
def Element.log=( log )
|
89
|
-
@@log = log
|
90
|
-
end
|
20
|
+
|
91
21
|
#Flag, if the calling stack should be analysed for each Element
|
92
22
|
#Only for document debbuging
|
93
23
|
@@trace = nil
|
@@ -97,6 +27,9 @@ class Element
|
|
97
27
|
end
|
98
28
|
|
99
29
|
SUPPORTED_TARGETS = [ :latex, :html, :wiki, :text, :debug ]
|
30
|
+
SUPPORTED_TARGETS << :context #Added later
|
31
|
+
SUPPORTED_TARGETS << :creole #Added later
|
32
|
+
|
100
33
|
|
101
34
|
#Return a element class.
|
102
35
|
def Element.get( name )
|
@@ -107,7 +40,7 @@ class Element
|
|
107
40
|
#
|
108
41
|
#Add subclasses to the list of all element classes and initialize some internal hashes.
|
109
42
|
def Element.inherited( subclass )
|
110
|
-
|
43
|
+
DOCGENERATOR_LOGGER.debug("New subclass for 'Element' created: '#{subclass}'") if DOCGENERATOR_LOGGER.debug?
|
111
44
|
#All attributes of a class are collected in a hash.
|
112
45
|
@@attr[subclass] = {}
|
113
46
|
#Fill @@ids
|
@@ -128,13 +61,13 @@ class Element
|
|
128
61
|
|
129
62
|
idlist.each{|id|
|
130
63
|
if @@ids[ id ] == nil
|
131
|
-
|
64
|
+
DOCGENERATOR_LOGGER.debug("Element class '#{id}' is new: #{elementClass}") if DOCGENERATOR_LOGGER.debug?
|
132
65
|
#All new ids are collected
|
133
66
|
@@ids[ id ] = elementClass
|
134
67
|
elsif @@ids[ id ] == elementClass
|
135
|
-
|
68
|
+
DOCGENERATOR_LOGGER.warn("Element class '#{id}' is defined double: #{elementClass}") if DOCGENERATOR_LOGGER.warn?
|
136
69
|
else
|
137
|
-
|
70
|
+
DOCGENERATOR_LOGGER.error("Error: ID '#{id}' is redefined #{@@ids[id]} -> #{elementClass}") if DOCGENERATOR_LOGGER.error?
|
138
71
|
@@ids[id] = elementClass
|
139
72
|
end
|
140
73
|
}
|
@@ -178,12 +111,16 @@ class Element
|
|
178
111
|
case k
|
179
112
|
when :latex
|
180
113
|
elementclass.add_output( :latex, v )
|
114
|
+
when :context
|
115
|
+
elementclass.add_output( :context, v )
|
181
116
|
when :html
|
182
117
|
elementclass.add_output( :html, v )
|
183
118
|
when :text
|
184
119
|
elementclass.add_output( :text, v )
|
185
120
|
when :wiki
|
186
121
|
elementclass.add_output( :wiki, v )
|
122
|
+
when :creole
|
123
|
+
elementclass.add_output( :creole, v )
|
187
124
|
when :htmltag
|
188
125
|
if v
|
189
126
|
elementclass.class_eval( "def htmltag()\n'#{v}'\nend" )
|
@@ -191,7 +128,7 @@ class Element
|
|
191
128
|
elementclass.class_eval( "def htmltag()\nnil\nend" )
|
192
129
|
end
|
193
130
|
else
|
194
|
-
puts "Unknown format #{k} for #{name}"
|
131
|
+
puts "#{__FILE__}##{__LINE__}: Unknown format #{k} for #{name}"
|
195
132
|
end
|
196
133
|
}
|
197
134
|
elementclass.add_attributes( attr )
|
@@ -252,12 +189,16 @@ class Element
|
|
252
189
|
case target
|
253
190
|
when :latex
|
254
191
|
cmd = "def to_latex(options = {})\n"
|
192
|
+
when :context
|
193
|
+
cmd = "def to_context(options = {})\n"
|
255
194
|
when :html
|
256
195
|
cmd = "def to_html(options = {})\n"
|
257
196
|
when :text
|
258
197
|
cmd = "def to_text(options = {})\n"
|
259
198
|
when :wiki
|
260
199
|
cmd = "def to_wiki(options = {})\n"
|
200
|
+
when :creole
|
201
|
+
cmd = "def to_creole(options = {})\n"
|
261
202
|
else
|
262
203
|
puts "#{self}: Undefined target format #{target}"
|
263
204
|
end
|
@@ -493,8 +434,13 @@ code
|
|
493
434
|
end
|
494
435
|
@@level = 0
|
495
436
|
#Build a String to be used for the target document.
|
496
|
-
#Calls
|
497
|
-
|
437
|
+
#Calls
|
438
|
+
#-Element#to_latex (target :latex),
|
439
|
+
#-Element#to_context (target :context)
|
440
|
+
#-Element#to_html (target :html)
|
441
|
+
#-Element#to_wiki (target :wiki) (support stopped)
|
442
|
+
#-Element#to_creole (target :creole) (not really good results)
|
443
|
+
#-Element#to_text (target :text) (not really good results)
|
498
444
|
#
|
499
445
|
#Via the options-hash, you can transport additional information.
|
500
446
|
def to_doc( target, options = {} )
|
@@ -517,13 +463,18 @@ code
|
|
517
463
|
}
|
518
464
|
#Build the string.
|
519
465
|
result = ''
|
466
|
+
|
520
467
|
case target
|
521
468
|
when :latex
|
522
469
|
result = to_latex(o)
|
470
|
+
when :context
|
471
|
+
result = to_context(o)
|
523
472
|
when :html
|
524
473
|
result = to_html(o)
|
525
474
|
when :wiki
|
526
475
|
result = to_wiki(o)
|
476
|
+
when :creole
|
477
|
+
result = to_creole(o)
|
527
478
|
when :text
|
528
479
|
result = to_text(o)
|
529
480
|
else
|
@@ -551,6 +502,22 @@ code
|
|
551
502
|
cmd << "\n" if @crafter
|
552
503
|
return cmd
|
553
504
|
end
|
505
|
+
#Create context-output.
|
506
|
+
#
|
507
|
+
#ConTeXt-support is added later and there are a lot of gaps (2009-07-01)
|
508
|
+
def to_context(options = {})
|
509
|
+
o = Docgenerator_logger.set_option_defaults(options)
|
510
|
+
o[:log].error("Missing output routine for ConTeXt (#{self.ids.join(',')}) [#{@called_by}]") if o[:log].error?
|
511
|
+
makroname = 'dummy'
|
512
|
+
self.ids.each{|id|
|
513
|
+
makroname = id if id.is_a?(Symbol) or id.is_a?(String)
|
514
|
+
}
|
515
|
+
cmd = ''
|
516
|
+
cmd << "\n" if @crbefore
|
517
|
+
cmd << "\\#{makroname}{#{@content}}"
|
518
|
+
cmd << "\n" if @crafter
|
519
|
+
return cmd
|
520
|
+
end
|
554
521
|
#Method for definition inside Element.create.
|
555
522
|
def linebreak( flag = true )
|
556
523
|
flag ? "\n" : ''
|
@@ -621,6 +588,11 @@ code
|
|
621
588
|
o[:log].error("Missing output routine for Wiki (#{self.ids.join(',')}) [#{@called_by}]") if o[:log].error?
|
622
589
|
return "#{@content.to_wiki(options)}\n"
|
623
590
|
end
|
591
|
+
def to_creole(options = {})
|
592
|
+
o = Docgenerator_logger.set_option_defaults(options)
|
593
|
+
o[:log].error("Missing output routine for creole (#{self.ids.join(',')}) [#{@called_by}]") if o[:log].error?
|
594
|
+
return "#{@content.to_creole(options)}\n"
|
595
|
+
end
|
624
596
|
def to_text(options = {})
|
625
597
|
o = Docgenerator_logger.set_option_defaults(options)
|
626
598
|
o[:log].error("Missing output routine for Text (#{self.ids.join(',')}) [#{@called_by}]") if o[:log].error?
|
@@ -13,8 +13,10 @@
|
|
13
13
|
Element.create( [:head], {}, true,
|
14
14
|
{ :htmltag => 'head',
|
15
15
|
:latex => '#{@content}',
|
16
|
+
:context => '#{@content}',
|
16
17
|
:text => '#{@content}',
|
17
18
|
:wiki => '#{@content}',
|
19
|
+
:creole => '#{@content}',
|
18
20
|
} )
|
19
21
|
Element.create( [:body], {
|
20
22
|
:bgcolor => Attribute.create( [ :html ] ),
|
@@ -26,43 +28,57 @@ Element.create( [:body], {
|
|
26
28
|
true,
|
27
29
|
{ :htmltag => 'body',
|
28
30
|
:latex => '#{@content}',
|
31
|
+
:context => '#{@content}',
|
29
32
|
:text => '#{@content}',
|
30
33
|
:wiki => '#{@content}',
|
34
|
+
:creole => '#{@content}',
|
31
35
|
} )
|
32
36
|
|
33
37
|
Element.create( [:latexdummy, :latexonly ], {},true,
|
34
38
|
{ :htmltag => nil,
|
35
39
|
:html => '',
|
36
|
-
:latex => '#{@content}'
|
40
|
+
:latex => '#{@content}',
|
41
|
+
:context => '',
|
37
42
|
} )
|
38
43
|
Element.create( [:htmldummy, :htmlonly ], {},true,
|
39
44
|
{ :html => '#{@content}',
|
40
|
-
:latex => ''
|
45
|
+
:latex => '',
|
46
|
+
:context => '',
|
41
47
|
} )
|
42
48
|
|
43
49
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
50
|
+
=begin rdoc
|
51
|
+
Titlepage
|
52
|
+
|
53
|
+
This parameter are better set with Document.title.
|
54
|
+
=end
|
49
55
|
class Title < Element
|
50
56
|
Element.add( [:title], Title)
|
51
57
|
add_attributes( {
|
52
58
|
:short => Attribute.create( [ :html ], nil, 1 )
|
53
59
|
}.update(HTML_ATTR_ALL)
|
54
60
|
)
|
55
|
-
|
61
|
+
=begin rdoc
|
62
|
+
Does the LaTeX-class support the shorttitle-option?
|
63
|
+
|
64
|
+
beamer.sty does it, others not.
|
65
|
+
|
66
|
+
#Unsaubere realisierung .. fixme
|
67
|
+
=end
|
56
68
|
def shortoption( options = {} )
|
57
69
|
@attr[:short].content.compact! #delete nils.
|
58
70
|
return nil if ! @attr[:short].filled?
|
59
71
|
o = Docgenerator_logger.set_option_defaults(options)
|
60
72
|
o[:log].debug("enter shortoption") if o[:log].debug?
|
61
|
-
if o[:document]
|
62
|
-
|
63
|
-
|
73
|
+
if o[:document]
|
74
|
+
#Check for known classes, which support the optional short title
|
75
|
+
case o[:document].template[:latex].template
|
76
|
+
when /beamer/i, /festodoc/
|
77
|
+
return "[#{@attr[:short].content.join}]"
|
78
|
+
else
|
79
|
+
o[:log].info("No usage of option short in title") if o[:log].info?
|
64
80
|
end
|
65
|
-
else
|
81
|
+
else #no related document
|
66
82
|
o[:log].info("No related document for shortoption") if o[:log].info?
|
67
83
|
end
|
68
84
|
return nil
|
@@ -79,7 +95,9 @@ class Title < Element
|
|
79
95
|
|
80
96
|
add_output( :text, "\n" + '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}' + "\n")
|
81
97
|
add_output( :wiki, '#{linebreak(@crbefore)}' + '=#{@content}=' + ' #{linebreak(@crafter)}')
|
82
|
-
|
98
|
+
add_output( :creole, '#{linebreak(@crbefore)}' + '=#{@content}' + ' #{linebreak(@crafter)}')
|
99
|
+
end #Title
|
100
|
+
|
83
101
|
Element.create( [:meta], {
|
84
102
|
:name => Attribute.create( [ :html, :required ], nil, 1 ),
|
85
103
|
:content => Attribute.create( [ :html, :required ], nil, 2 ),
|
@@ -88,7 +106,11 @@ Element.create( [:meta], {
|
|
88
106
|
:htmltag => 'meta',
|
89
107
|
#~ :html => '<meta name="#{@attr[:name]}" content="#{@attr[:content]}">',
|
90
108
|
:latex => '',
|
109
|
+
:context => '',
|
91
110
|
# :latex => '#{linebreak(@crbefore)}' + '\author{#{@content}}\hypersetup{pdfauthor={#{@content}}}' + ' #{linebreak(@crafter)}'
|
111
|
+
:wiki => '',
|
112
|
+
:creole => '',
|
113
|
+
:text => '',
|
92
114
|
} )
|
93
115
|
#Like Meta, but not name...
|
94
116
|
Element.create( [:meta2], {
|
@@ -220,8 +242,10 @@ Element.create( [:addtocontents], {
|
|
220
242
|
Element.create( [:par, :p], HTML_ATTR_ALL, true,
|
221
243
|
{ :htmltag => 'p',
|
222
244
|
:latex => "\n\n" + '#{@content}' + "\n\n",
|
245
|
+
:context => "\n\n" + '#{@content}' + "\n\n",
|
223
246
|
:text => "\n" + '#{@content}' + "\n", #siehe experimente/textformat.rb
|
224
|
-
:wiki => "\n" + '#{@content}' + "\n",
|
247
|
+
:wiki => "\n" + '#{@content}' + "\n", #
|
248
|
+
:creole => "\n" + '#{@content}' + "\n\n",
|
225
249
|
} )
|
226
250
|
#~ par.add_output( :html, '<p>#{@attr[:content]}</p>')
|
227
251
|
#~ par.add_output( :latex, '#{@content}\par')
|
@@ -437,11 +461,13 @@ class Usepackage < Element
|
|
437
461
|
#Here we load this special commands/elements if available.
|
438
462
|
def << ( content )
|
439
463
|
@content << content
|
440
|
-
#Load new makros if available
|
441
|
-
makrodefinitions = 'docgenerator_' + content + '.rb'
|
464
|
+
#Load new additionals makros if available
|
465
|
+
makrodefinitions = 'packages/docgenerator_' + content + '.rb'
|
442
466
|
begin
|
467
|
+
@log.debug("usepackage: Try to load #{makrodefinitions}") if @log.debug?
|
443
468
|
require makrodefinitions
|
444
469
|
rescue LoadError
|
470
|
+
@log.info("usepackage: No supporting definitions #{makrodefinitions} found") if @log.info?
|
445
471
|
end
|
446
472
|
end
|
447
473
|
|
@@ -453,7 +479,7 @@ class Usepackage < Element
|
|
453
479
|
cmd << '\usepackage'
|
454
480
|
opt = @attr[:option].content
|
455
481
|
cmd << '[' + opt.join(',') + ']' if opt.size > 0
|
456
|
-
cmd << "{#{@content}}"
|
482
|
+
cmd << "{#{@content.join}}"
|
457
483
|
cmd << linebreak(@crafter)
|
458
484
|
return cmd
|
459
485
|
end
|
@@ -15,7 +15,21 @@ class Environment < Element
|
|
15
15
|
cmd << "\n" if @crafter
|
16
16
|
return cmd
|
17
17
|
end
|
18
|
-
|
18
|
+
#ConTeXt-environments start with start and end with stop.
|
19
|
+
#
|
20
|
+
#Fixme: Parameters
|
21
|
+
def to_context_environment( environment, parameter = nil, options={})
|
22
|
+
cmd = ''
|
23
|
+
cmd << "\n" if @crbefore
|
24
|
+
cmd << "\n\\start#{environment}"
|
25
|
+
cmd << parameter.to_s if parameter
|
26
|
+
cmd << "\n" if @crmid
|
27
|
+
cmd << @content.to_latex
|
28
|
+
#~ cmd << "\n" if @crmid and cmd[-1,1] != "\n"
|
29
|
+
cmd << "\n\\stop#{environment}\n"
|
30
|
+
cmd << "\n" if @crafter
|
31
|
+
return cmd
|
32
|
+
end #~ def htmltag()
|
19
33
|
#~ return 'table'
|
20
34
|
#~ end
|
21
35
|
#~ def to_latex( )
|
@@ -55,8 +69,8 @@ Element.create( [:verb ], HTML_ATTR_CORE, true,
|
|
55
69
|
#fixme font tt
|
56
70
|
#~ :html => '#{linebreak(@crbefore)}<span style = "display: inline;white-space:pre;font-family:monospace">#{@content}</span>#{linebreak(@crafter)}',
|
57
71
|
:html => '#{linebreak(@crbefore)}<span style = "display: inline;white-space:pre;font-family:monospace">#{@content.join.gsub(/</, \'<\').gsub(/>/, \'>\')}</span>#{linebreak(@crafter)}',
|
58
|
-
:latex => '#{linebreak(@crbefore)}\verb|#{@content}|#{linebreak(@crafter)}'
|
59
|
-
|
72
|
+
:latex => '#{linebreak(@crbefore)}\verb|#{@content}|#{linebreak(@crafter)}',
|
73
|
+
:text => '#{linebreak(@crbefore)}#{@content}#{linebreak(@crafter)}',
|
60
74
|
} )
|
61
75
|
|
62
76
|
class Verbatim < Environment
|
@@ -84,10 +98,10 @@ class Verbatim < Environment
|
|
84
98
|
return html
|
85
99
|
end #to_html
|
86
100
|
|
87
|
-
def to_text(options = {}); "#{content}" end
|
88
|
-
def to_wiki(options = {} ); " #{content}" end
|
101
|
+
def to_text(options = {}); "#{content.join}" end
|
102
|
+
def to_wiki(options = {} ); " #{content.join}" end
|
89
103
|
def to_latex(options = {} )
|
90
|
-
return to_latex_environment( 'verbatim', options = {} )
|
104
|
+
return to_latex_environment( 'verbatim', nil, options = {} )
|
91
105
|
end
|
92
106
|
end
|
93
107
|
|
@@ -1,20 +1,29 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
=begin rdoc
|
2
|
+
Footnotegroup.
|
3
|
+
|
4
|
+
A Footnote without group-attribute get it#s own Footnotegroup.
|
5
|
+
For LaTeX it is ok, for HTML the content of the footnote will disappear.
|
6
|
+
=end
|
7
7
|
class Footnotegroup
|
8
8
|
#Define a default key for the footnotes.
|
9
9
|
#Used as part of the link.
|
10
10
|
DEFAULTGROUPID = 'footnote'
|
11
11
|
DEFAULTGROUPID.freeze
|
12
|
-
|
12
|
+
@@all = {}
|
13
|
+
=begin rdoc
|
14
|
+
=end
|
15
|
+
def self.[](key=DEFAULTGROUPID)
|
16
|
+
@@all[key]
|
17
|
+
end
|
18
|
+
=begin rdoc
|
19
|
+
Build a new footnote group.
|
20
|
+
=end
|
13
21
|
def initialize( groupid = DEFAULTGROUPID)
|
14
22
|
@groupid = groupid
|
15
23
|
@footnotes = []
|
16
24
|
@attr = {}
|
17
25
|
@html_link = true
|
26
|
+
@@all[@groupid] = self
|
18
27
|
end
|
19
28
|
#Flag, if the footnote and the footnote mark should be linked.
|
20
29
|
attr_accessor :html_link
|
@@ -29,7 +38,7 @@ class Footnotegroup
|
|
29
38
|
return @footnotes.size
|
30
39
|
end
|
31
40
|
def to_doc( target, options={} )
|
32
|
-
return '' if @footnotes.
|
41
|
+
return '' if @footnotes.empty?
|
33
42
|
ul = element(:p, @attr ).cr
|
34
43
|
@footnotes.each{|f|
|
35
44
|
#~ ul << element(:sup, {}, f.counter )
|
@@ -46,9 +55,9 @@ class Footnotegroup
|
|
46
55
|
end
|
47
56
|
end #Footnotegroup
|
48
57
|
|
49
|
-
|
50
|
-
|
51
|
-
|
58
|
+
=begin rdoc
|
59
|
+
Footnotes
|
60
|
+
=end
|
52
61
|
class Footnote < Element
|
53
62
|
Element.add( [:footnote ], Footnote)
|
54
63
|
add_attributes( {
|
@@ -63,12 +72,12 @@ class Footnote < Element
|
|
63
72
|
|
64
73
|
def initialize( attr={}, content = nil)
|
65
74
|
super
|
66
|
-
@group = attr[:group]
|
75
|
+
@group = attr[:group] || Footnotegroup[]
|
67
76
|
#@group must be defined!
|
68
77
|
#This is only a dummy group. it will be lost for overviews.
|
69
78
|
if ! @group.is_a?(Footnotegroup)
|
70
79
|
@group = Footnotegroup.new()
|
71
|
-
@log.error( "Footnote: No group assigned. Build a new group") if @log.error?
|
80
|
+
#~ @log.error( "Footnote: No group assigned. Build a new group") if @log.error?
|
72
81
|
end
|
73
82
|
|
74
83
|
@group << self
|
@@ -109,13 +118,8 @@ class Footnote < Element
|
|
109
118
|
end #Footnote
|
110
119
|
|
111
120
|
|
112
|
-
|
113
121
|
Element.create( [:footnotemark ], {}.update(HTML_ATTR_ALL),true,
|
114
122
|
{ :htmltag => 'sup',
|
115
123
|
:latex => '#{linebreak(@crbefore)}\footnotemark[#{@content.to_latex}]#{linebreak(@crafter)}' #fixme
|
116
124
|
} )
|
117
125
|
|
118
|
-
|
119
|
-
__END__
|
120
|
-
txt << f = element(:footnote,{:groupid=>1}, 'eins/Gruppe 1')
|
121
|
-
txt << Footnotegroup.get()
|