docgenerator 1.1.1 → 1.2.1
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/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
|
@@ -21,7 +21,7 @@ class ListEnvironment < Environment
|
|
|
21
21
|
@content << item
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
|
-
#Add parent-information to options.
|
|
24
|
+
#Add parent-information to options. This is used by the list elements to get the list type.
|
|
25
25
|
def to_doc( target, options = {} )
|
|
26
26
|
o = Docgenerator_logger.set_option_defaults(options)
|
|
27
27
|
o[:log].debug("enter to_doc for #{self.inspect}") if o[:log].debug?
|
|
@@ -43,6 +43,9 @@ class Itemize < ListEnvironment
|
|
|
43
43
|
def to_latex( options={} )
|
|
44
44
|
return to_latex_environment( 'itemize', nil, options )
|
|
45
45
|
end
|
|
46
|
+
def to_context( options={} )
|
|
47
|
+
return to_context_environment( 'itemize', '[1]', options )
|
|
48
|
+
end
|
|
46
49
|
end
|
|
47
50
|
class Enumerate < ListEnvironment
|
|
48
51
|
add_attributes( HTML_ATTR_ALL )
|
|
@@ -51,6 +54,9 @@ class Enumerate < ListEnvironment
|
|
|
51
54
|
def to_latex( options={} )
|
|
52
55
|
return to_latex_environment( 'enumerate', nil, options )
|
|
53
56
|
end
|
|
57
|
+
def to_context( options={} )
|
|
58
|
+
return to_context_environment( 'itemize', '[n]', options )
|
|
59
|
+
end
|
|
54
60
|
end
|
|
55
61
|
#
|
|
56
62
|
#
|
|
@@ -88,6 +94,16 @@ class Item < Element
|
|
|
88
94
|
cmd << "\n" if @crafter
|
|
89
95
|
return cmd
|
|
90
96
|
end
|
|
97
|
+
#Item is the same like in LaTeX,but we have to use to_context() for the sub-elements.
|
|
98
|
+
def to_context( options={} )
|
|
99
|
+
cmd = ''
|
|
100
|
+
cmd << "\n" if @crbefore
|
|
101
|
+
cmd << "\n\\item "
|
|
102
|
+
#~ cmd << "[#{@attr[:text]}] " if @attr[:text].filled? #fixme
|
|
103
|
+
cmd << @content.to_doc(:context, options)
|
|
104
|
+
cmd << "\n" if @crafter
|
|
105
|
+
return cmd
|
|
106
|
+
end
|
|
91
107
|
def to_text(options={})
|
|
92
108
|
cmd = ''
|
|
93
109
|
cmd << "\n" if @crbefore
|
|
@@ -5,13 +5,15 @@
|
|
|
5
5
|
#Small helper to make TeX-Hyperlinks like in HTML (attribute id)
|
|
6
6
|
def hypertarget(id)
|
|
7
7
|
return "\\hypertarget{#{id}}{}" if id.is_a?(String)
|
|
8
|
-
return '' if ! id.content or id.content.to_s =~/\A\s*\Z/
|
|
8
|
+
#~ return '' if ! id.content or id.content.to_s =~/\A\s*\Z/
|
|
9
|
+
return '' if ! id.content or id.content.join =~/\A\s*\Z/ #Ruby 1.9
|
|
9
10
|
return "\\hypertarget{#{id}}{}"
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
#Fixmes:
|
|
13
14
|
#- addsec
|
|
14
15
|
#- article/report
|
|
16
|
+
#- context (actual like latex
|
|
15
17
|
sect = Struct.new( 'Sections', :keys, :wiki, :html, :tex )
|
|
16
18
|
[
|
|
17
19
|
sect.new( [:part], 0, '', 'part'), #fixme: neue HTML-Datei?
|
|
@@ -33,9 +35,15 @@ sect = Struct.new( 'Sections', :keys, :wiki, :html, :tex )
|
|
|
33
35
|
'{#{@content}}' +
|
|
34
36
|
'#{hypertarget(@attr[:id])}' +
|
|
35
37
|
'#{linebreak(@crafter)}',
|
|
38
|
+
:context => '#{linebreak(@crbefore)}' + "\\#{s.tex}" +
|
|
39
|
+
'#{texoptional(:short)}' +
|
|
40
|
+
'{#{@content}}' +
|
|
41
|
+
'#{hypertarget(@attr[:id])}' +
|
|
42
|
+
'#{linebreak(@crafter)}',
|
|
36
43
|
:text => "\n" + '#{linebreak(@crbefore)}#{@content}' + "\n" +
|
|
37
44
|
' ' * s.wiki * 2 + '-' * 30 + "\n" + '#{linebreak(@crafter)}',
|
|
38
45
|
:wiki => '#{linebreak(@crbefore)}' + "\n" + '='* (s.wiki ) + '#{@content}' + '='* (s.wiki) + "\n" + '#{linebreak(@crafter)}',
|
|
46
|
+
:creole => '#{linebreak(@crbefore)}' + "\n" + '='* (s.wiki ) + '#{@content}' + "\n" + '#{linebreak(@crafter)}',
|
|
39
47
|
} )
|
|
40
48
|
}
|
|
41
49
|
#~ Element.create( [:h1], HTML_ATTR_ALL, true,
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
=begin rdoc
|
|
3
|
+
This file change the behaviour of each Object.
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
=begin rdoc
|
|
7
|
+
Extend all objects by the methods
|
|
8
|
+
- to_doc
|
|
9
|
+
- to_html
|
|
10
|
+
- to_latex
|
|
11
|
+
- to_wiki
|
|
12
|
+
- to_text
|
|
13
|
+
- to_context
|
|
14
|
+
Redefine is_a?:
|
|
15
|
+
Return true, when you test with a symbol.
|
|
16
|
+
=end
|
|
17
|
+
class Object
|
|
18
|
+
alias :old_is_a? :is_a?
|
|
19
|
+
=begin rdoc
|
|
20
|
+
Redefine the standard is_a?
|
|
21
|
+
|
|
22
|
+
Returns also true, if one of the ids is in testvalue
|
|
23
|
+
=end
|
|
24
|
+
def is_a?( testvalue)
|
|
25
|
+
if testvalue.old_is_a?(Symbol)
|
|
26
|
+
if old_is_a?(Element)
|
|
27
|
+
return ids.include?(testvalue)
|
|
28
|
+
else
|
|
29
|
+
return false
|
|
30
|
+
end
|
|
31
|
+
else
|
|
32
|
+
return old_is_a?(testvalue)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
=begin rdoc
|
|
36
|
+
to_doc returns the object as a string.
|
|
37
|
+
will be redefined for Element
|
|
38
|
+
=end
|
|
39
|
+
def to_doc(target, options = {})
|
|
40
|
+
o = Docgenerator_logger.set_option_defaults(options)
|
|
41
|
+
if self.is_a?(Element) and ! self.respond_to?(:to_doc)
|
|
42
|
+
o[:log].error( "Missing to_doc routine for #{self.class}") if o[:log].error?
|
|
43
|
+
end
|
|
44
|
+
self.respond_to?(:to_str) ? self.to_str : self.to_s
|
|
45
|
+
end
|
|
46
|
+
def to_text(options = {}); to_doc(:text, options); end
|
|
47
|
+
def to_latex(options = {}); to_doc(:latex, options); end
|
|
48
|
+
def to_context(options = {}); to_doc(:context, options); end
|
|
49
|
+
def to_html(options = {}); to_doc(:html, options); end
|
|
50
|
+
def to_wiki(options = {}); to_doc(:wiki, options); end
|
|
51
|
+
def to_creole(options = {}); to_doc(:creole, options); end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
=begin rdoc
|
|
55
|
+
Recursive to_doc for each elements in the array.
|
|
56
|
+
=end
|
|
57
|
+
class Array
|
|
58
|
+
=begin rdoc
|
|
59
|
+
Returns the element for each parameter
|
|
60
|
+
=end
|
|
61
|
+
def to_doc(target, options = {})
|
|
62
|
+
o = Docgenerator_logger.set_option_defaults(options)
|
|
63
|
+
o[:log].debug("enter to_doc(#{target}) for Array, options: #{options.keys.inspect}") if o[:log].debug?
|
|
64
|
+
str = ""
|
|
65
|
+
self.each{|el|
|
|
66
|
+
begin
|
|
67
|
+
res = el.to_doc(target, o)
|
|
68
|
+
rescue ArgumentError
|
|
69
|
+
o[:log].fatal("ArgumentError to_doc for element <#{el.class}>") if o[:log].fatal?
|
|
70
|
+
res = el.to_doc(target)
|
|
71
|
+
end
|
|
72
|
+
#Add text. If necessary, convert the encoding.
|
|
73
|
+
begin
|
|
74
|
+
str << res
|
|
75
|
+
rescue Encoding::CompatibilityError
|
|
76
|
+
str << res.encode(str.encoding)
|
|
77
|
+
end
|
|
78
|
+
}
|
|
79
|
+
return str
|
|
80
|
+
end #Array#to_doc
|
|
81
|
+
end #Array
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
=begin rdoc
|
|
3
|
+
Definition of tabular elements for DocGenerator.rb
|
|
4
|
+
=end
|
|
5
|
+
|
|
4
6
|
#~ if __FILE__ == $0
|
|
5
7
|
#~ require 'DocGenerator'
|
|
6
8
|
#~ end
|
|
@@ -243,7 +245,7 @@ class Row < Element
|
|
|
243
245
|
o[:log].debug("table/row without corresponding file") if o[:log].debug?
|
|
244
246
|
cmd << Regexp.escape('\\')
|
|
245
247
|
end
|
|
246
|
-
cmd << "[#{@attr[:add_vspace].content.
|
|
248
|
+
cmd << "[#{@attr[:add_vspace].content.join}]" if @attr[:add_vspace].content.size > 0
|
|
247
249
|
cmd << @hline.to_latex(o) if @hline
|
|
248
250
|
cmd << @toprule.to_latex(o) if @toprule
|
|
249
251
|
cmd << @midrule.to_latex(o) if @midrule
|
|
@@ -269,11 +271,13 @@ class Row < Element
|
|
|
269
271
|
css = @attr[:style].content[0]
|
|
270
272
|
o[:log].error( "docgenerator_tabular: style is no CSS #{css.inspect}" ) if css and ! css.is_a?(CSS) and o[:log].error?
|
|
271
273
|
@attr[:style] << css = CSS.new if ! css
|
|
274
|
+
|
|
272
275
|
#Doesn't work. Style sheet setting in tr doesn't go to td
|
|
273
276
|
if @hline
|
|
274
277
|
css[:border_bottom_style] = 'solid'
|
|
275
|
-
css[:border_bottom_width] = '
|
|
278
|
+
css[:border_bottom_width] = 'medium'
|
|
276
279
|
end
|
|
280
|
+
|
|
277
281
|
# cmd << @toprule.to_s if @toprule
|
|
278
282
|
# cmd << @midrule.to_s if @midrule
|
|
279
283
|
# cmd << @bottomrule.to_s if @bottomrule
|
|
@@ -28,9 +28,13 @@ LSTSETTINGS = {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
Element.create( [:lstlistoflistings], {}, false )
|
|
31
|
-
Element.create( [:lstloadlanguages], {}, true, {
|
|
31
|
+
Element.create( [:lstloadlanguages], {}, true, {
|
|
32
|
+
:latex => '#{linebreak(@crbefore)}\lstloadlanguages{#{@content}}#{linebreak(@crafter)}',
|
|
33
|
+
:html => '',
|
|
34
|
+
} )
|
|
32
35
|
Element.create( [:lstset], LSTSETTINGS, false, {
|
|
33
36
|
:latex => '#{linebreak(@crbefore)}\lstset{#{texkeyval()}}#{linebreak(@crafter)}',
|
|
37
|
+
:html => '',
|
|
34
38
|
})
|
|
35
39
|
Element.create( [:lstdefinestyle], LSTSETTINGS, true, {
|
|
36
40
|
:latex => '#{linebreak(@crbefore)}\lstdefinestyle{#{@content}}{#{texkeyval()}}#{linebreak(@crafter)}',
|
|
@@ -57,7 +61,7 @@ class Lstinline < Element
|
|
|
57
61
|
def htmltag; 'pre'; end
|
|
58
62
|
#Redefine standard output.
|
|
59
63
|
#Options are given, if an option is avalaible.
|
|
60
|
-
def to_latex()
|
|
64
|
+
def to_latex( options={} )
|
|
61
65
|
if ! @content.include?( '!' ); sep = '!'
|
|
62
66
|
elsif ! @content.include?( '?' ); sep = '?'
|
|
63
67
|
else
|
|
@@ -67,7 +71,7 @@ class Lstinline < Element
|
|
|
67
71
|
cmd << '\lstinline'
|
|
68
72
|
cmd << "[#{texkeyval()}]"
|
|
69
73
|
cmd << sep
|
|
70
|
-
cmd << "#{@content.to_latex}"
|
|
74
|
+
cmd << "#{@content.to_latex( options)}"
|
|
71
75
|
cmd << sep
|
|
72
76
|
cmd << linebreak(@crafter)
|
|
73
77
|
return cmd
|
|
@@ -86,10 +90,10 @@ class Lstlisting < Environment
|
|
|
86
90
|
def htmltag; 'pre'; end
|
|
87
91
|
#Redefine standard output.
|
|
88
92
|
#Options are given, if an option is avalaible.
|
|
89
|
-
def to_latex()
|
|
93
|
+
def to_latex( options={} )
|
|
90
94
|
option = "[#{texkeyval()}]"
|
|
91
95
|
option = nil if option == '[]'
|
|
92
|
-
return to_latex_environment( 'lstlisting', option )
|
|
96
|
+
return to_latex_environment( 'lstlisting', option, options )
|
|
93
97
|
end
|
|
94
98
|
end
|
|
95
99
|
|
|
@@ -2,17 +2,23 @@
|
|
|
2
2
|
#requires a
|
|
3
3
|
# doc.head << element(:usepackage,{},'pdfpages')
|
|
4
4
|
#
|
|
5
|
+
#The usepackage command loads this script by its own.
|
|
6
|
+
#
|
|
5
7
|
|
|
6
8
|
|
|
7
|
-
#
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Element.
|
|
9
|
+
#
|
|
10
|
+
#Implement includepdf from pdfpages-package.
|
|
11
|
+
#
|
|
12
|
+
#Only pages-parameter is supported (yet).
|
|
13
|
+
class IncludePDF < Element
|
|
14
|
+
|
|
15
|
+
Element.add( [:includepdf], IncludePDF )
|
|
16
|
+
|
|
17
|
+
add_attributes( {
|
|
14
18
|
:pages => Attribute.create( [ :texkeyval], [ String ] ),
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
}#.update(HTML_ATTR_ALL)
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
add_output( :latex, '#{linebreak(@crbefore)}\includepdf[#{texkeyval()}]{#{@content}}#{linebreak(@crafter)}')
|
|
23
|
+
|
|
24
|
+
end #IncludePDF
|
|
@@ -1,25 +1,34 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
#encoding: cp1252
|
|
2
|
+
=begin rdoc
|
|
3
|
+
Definition of templates.
|
|
4
|
+
|
|
5
|
+
This templates are used for document types.
|
|
6
|
+
|
|
7
|
+
This Source-code is stored in cp1252.
|
|
8
|
+
All templates will get this encoding.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
=end
|
|
5
12
|
class DocumentTemplate
|
|
6
13
|
@@templates = {}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
=begin rdoc
|
|
15
|
+
|
|
16
|
+
Define a template.
|
|
17
|
+
|
|
18
|
+
A template gets a key, a target and the corresponding source.
|
|
19
|
+
|
|
20
|
+
Valid targets are:
|
|
21
|
+
-:latex
|
|
22
|
+
-:html
|
|
23
|
+
-:wiki
|
|
24
|
+
-:text
|
|
25
|
+
|
|
26
|
+
The source should contain the following place holder:
|
|
27
|
+
- <<prefix>> Contains later some admin data like time of creation...
|
|
28
|
+
- <<head>> Some header definitions
|
|
29
|
+
- <<body>> The main text
|
|
30
|
+
- <<classoptions>> Class options (LaTeX)
|
|
31
|
+
=end
|
|
23
32
|
def initialize( key, target, template)
|
|
24
33
|
@key = key
|
|
25
34
|
@target = target
|
|
@@ -27,7 +36,9 @@ class DocumentTemplate
|
|
|
27
36
|
case target
|
|
28
37
|
when :text
|
|
29
38
|
when :wiki
|
|
39
|
+
when :creole
|
|
30
40
|
when :latex
|
|
41
|
+
when :context
|
|
31
42
|
when :html
|
|
32
43
|
else
|
|
33
44
|
puts "DocumentTemplate: Undefined target #{target.inspect}"
|
|
@@ -67,13 +78,13 @@ class DocumentTemplate
|
|
|
67
78
|
def DocumentTemplate.keys()
|
|
68
79
|
return @@templates.keys
|
|
69
80
|
end
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def DocumentTemplate.load( yamlfile
|
|
81
|
+
=begin rdoc
|
|
82
|
+
To add new templates via an external yaml-definition file.
|
|
83
|
+
See 'docgenerator_template.yaml' as an example.
|
|
84
|
+
|
|
85
|
+
You can use DocumentTemplate.to_yaml() to build your file.
|
|
86
|
+
=end
|
|
87
|
+
def DocumentTemplate.load( yamlfile )
|
|
77
88
|
File.open(yamlfile){|yaml|
|
|
78
89
|
YAML.load(yaml).each{|key, data|
|
|
79
90
|
DocumentTemplate.new( key, data[:target], data[:source] )
|
|
@@ -93,7 +104,22 @@ class DocumentTemplate
|
|
|
93
104
|
end
|
|
94
105
|
end
|
|
95
106
|
|
|
96
|
-
|
|
107
|
+
[
|
|
108
|
+
"#{File.dirname(__FILE__)}/docgenerator_template.yaml",
|
|
109
|
+
=begin
|
|
110
|
+
ocra-settings:
|
|
111
|
+
|
|
112
|
+
If you 'compile' your script with ocra, the template file is not found.
|
|
113
|
+
|
|
114
|
+
You have to add it yourself with
|
|
115
|
+
ocra <your_script>.rb docgenerator_template.yaml
|
|
116
|
+
|
|
117
|
+
(How to do it better?
|
|
118
|
+
=end
|
|
119
|
+
"#{File.dirname(__FILE__)}/../../../../../../../../src/docgenerator_template.yaml", #for ocra-version (exe)
|
|
120
|
+
].each{| template_file |
|
|
121
|
+
DocumentTemplate.load(template_file) if File.exist?(template_file)
|
|
122
|
+
}
|
|
97
123
|
|
|
98
124
|
#~ Dir["#{File.dirname(__FILE__)}/*.{wiki,latex,text,html}"].each{|templatename|
|
|
99
125
|
#~ key, target = File.basename(templatename).split(/\./)
|
|
@@ -134,7 +160,18 @@ DocumentTemplate.new(
|
|
|
134
160
|
#~ |)
|
|
135
161
|
|
|
136
162
|
#~ <!doctype html public "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
137
|
-
|
|
163
|
+
|
|
164
|
+
DocumentTemplate.new(
|
|
165
|
+
:context, %q|<<prefix>>
|
|
166
|
+
% ----------------------------------------------------------------
|
|
167
|
+
<<head>>
|
|
168
|
+
% ----------------------------------------------------------------
|
|
169
|
+
\starttext
|
|
170
|
+
<<body>>
|
|
171
|
+
\stoptext
|
|
172
|
+
% ----------------------------------------------------------------
|
|
173
|
+
|)
|
|
174
|
+
|
|
138
175
|
DocumentTemplate.new(
|
|
139
176
|
:html, :html, %q|<!--
|
|
140
177
|
<<prefix>>
|
|
@@ -24,6 +24,12 @@
|
|
|
24
24
|
|
|
25
25
|
<<body>>
|
|
26
26
|
|
|
27
|
+
:creole:
|
|
28
|
+
:target: :creole
|
|
29
|
+
:source: |
|
|
30
|
+
|
|
31
|
+
<<body>>
|
|
32
|
+
|
|
27
33
|
:xhtml_trans:
|
|
28
34
|
:target: :html
|
|
29
35
|
:source: |
|
|
@@ -103,3 +109,15 @@
|
|
|
103
109
|
<<body>>
|
|
104
110
|
\end{document}
|
|
105
111
|
% ----------------------------------------------------------------
|
|
112
|
+
|
|
113
|
+
:context:
|
|
114
|
+
:target: :context
|
|
115
|
+
:source: |
|
|
116
|
+
<<prefix>>
|
|
117
|
+
% ----------------------------------------------------------------
|
|
118
|
+
<<head>>
|
|
119
|
+
% ----------------------------------------------------------------
|
|
120
|
+
\starttext
|
|
121
|
+
<<body>>
|
|
122
|
+
\stoptext
|
|
123
|
+
% ----------------------------------------------------------------
|
|
@@ -285,6 +285,8 @@ end
|
|
|
285
285
|
#Get text in wiki-format and build a docgenerator-version.
|
|
286
286
|
#
|
|
287
287
|
class Wikitext
|
|
288
|
+
include Docgenerator #get VERSION
|
|
289
|
+
|
|
288
290
|
#
|
|
289
291
|
#Make short description for the Wiki-syntax
|
|
290
292
|
def self.help( version = :syntax)
|
|
@@ -630,9 +632,11 @@ tabhelp
|
|
|
630
632
|
end
|
|
631
633
|
when 'filecontent'
|
|
632
634
|
if File.exist?( val.first )
|
|
635
|
+
text = File.read(val.first)
|
|
636
|
+
#~ text.force_encoding(val[1] ) if val[1]
|
|
633
637
|
return element(:div,
|
|
634
638
|
Hash[*val[1..-1].map{|v| kv = v.split(/=/); [kv[0].to_sym, kv[1]]}.flatten],
|
|
635
|
-
|
|
639
|
+
text )
|
|
636
640
|
else
|
|
637
641
|
log.error( "#{self.class}#wiki_macro: File #{value} missing for filecontent in line #{@lineno}" ) if log.error?
|
|
638
642
|
end
|
|
@@ -692,7 +696,7 @@ tabhelp
|
|
|
692
696
|
collector = nil #collect content for other application
|
|
693
697
|
collectorline = nil #collect content for other application
|
|
694
698
|
|
|
695
|
-
txt.
|
|
699
|
+
txt.each_line{|line|
|
|
696
700
|
|
|
697
701
|
if line.gsub!( /#~.*/, '') #delete comments
|
|
698
702
|
#skip processing, if the line is now empty.
|