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
@@ -16,23 +16,26 @@
|
|
16
16
|
#
|
17
17
|
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
19
|
+
=begin rdoc
|
20
|
+
Dummy class for all inclusions and plugins.
|
21
|
+
Used to check the correct definition.
|
22
|
+
|
23
|
+
- Inclusions are used later with {{xx}}
|
24
|
+
- Plugins are used later with <<xx>>
|
25
|
+
|
26
|
+
Derived classes (Inclusions):
|
27
|
+
- Creole_inclusion_img
|
28
|
+
- Creole_inclusion_footnote_group
|
29
|
+
- Creole_inclusion_footnote
|
30
|
+
Derived classes (Plugins):
|
31
|
+
- Creole_default_plugin
|
32
|
+
- Creole_plugin_ruby
|
33
|
+
- Creole_plugin_ruby_raw
|
34
|
+
More subclasses may be possible.
|
35
|
+
=end
|
35
36
|
class Creole_inclusion_and_plugin
|
37
|
+
include Docgenerator #get VERSION
|
38
|
+
|
36
39
|
def initialize( inclusionname, description, options, wiki )
|
37
40
|
@inclusionname = inclusionname
|
38
41
|
@description = description
|
@@ -52,22 +55,67 @@ class Creole_default_plugin < Creole_inclusion_and_plugin
|
|
52
55
|
Creole::Plugins.default = self
|
53
56
|
def initialize( pluginname, description, options, wiki )
|
54
57
|
super
|
55
|
-
@wiki.log.warn("Use Default plugin - nothing special done.") if @wiki.log.warn?
|
58
|
+
@wiki.log.warn("Use Default plugin instead requested #{pluginname}- nothing special done.") if @wiki.log.warn?
|
56
59
|
end
|
57
60
|
end
|
58
61
|
|
59
62
|
|
60
|
-
#Include images.
|
61
|
-
#http://www.wikicreole.org/wiki/Images
|
62
63
|
#
|
63
|
-
#
|
64
|
+
#Define a 'shy' as {{shy}}
|
65
|
+
#
|
66
|
+
class Creole_shy < Creole_inclusion_and_plugin
|
67
|
+
#
|
68
|
+
#~ Creole::Plugins['-'] = self
|
69
|
+
Creole::Inclusions['-'] = self
|
70
|
+
Creole::Inclusions['shy'] = self
|
71
|
+
|
72
|
+
def to_doc(target, options = {})
|
73
|
+
element(:shy).to_doc(target, options)
|
74
|
+
end
|
75
|
+
end #Creole_inclusion_footnote_group
|
76
|
+
|
64
77
|
#
|
65
|
-
#
|
78
|
+
#Define a 'nil' as {{nil}}
|
79
|
+
#
|
80
|
+
class Creole_nil < Creole_inclusion_and_plugin
|
81
|
+
#
|
82
|
+
#~ Creole::Plugins['-'] = self
|
83
|
+
#~ Creole::Inclusions['-'] = self
|
84
|
+
Creole::Inclusions['nil'] = self
|
85
|
+
|
86
|
+
def to_doc(target, options = {})
|
87
|
+
''
|
88
|
+
end
|
89
|
+
end #Creole_inclusion_footnote_group
|
90
|
+
|
91
|
+
|
92
|
+
=begin rdoc
|
93
|
+
Include images.
|
94
|
+
http://www.wikicreole.org/wiki/Images
|
95
|
+
|
96
|
+
There are yet more features than in standard.
|
97
|
+
|
98
|
+
This is also the default for inclusions.
|
99
|
+
|
100
|
+
Usage:
|
101
|
+
{{picurl.jpg|Alternate text|class=cc}}
|
102
|
+
{{picurl.jpg|Alternate text|css=width:50%}}
|
103
|
+
|
104
|
+
=end
|
66
105
|
class Creole_inclusion_img < Creole_inclusion_and_plugin
|
67
106
|
Creole::Inclusions.default = self
|
107
|
+
=begin rdoc
|
108
|
+
Define an image.
|
109
|
+
The existence of the picture is checked.
|
110
|
+
|
111
|
+
Supported options:
|
112
|
+
* alt (2nd parameter of {{picsrc|...}}
|
113
|
+
* css or imgcss
|
114
|
+
* class or imgclass
|
115
|
+
* longdesc (can take a url, at leas opera offers to call the description)
|
116
|
+
* width (only LaTeX. For HTML, use css-option).
|
68
117
|
|
69
|
-
|
70
|
-
#The existence of the picture is checked.
|
118
|
+
=end
|
71
119
|
def initialize( picname, alt_text, options, wiki )
|
72
120
|
super
|
73
121
|
@img = element(:img,{ :src => @inclusionname })
|
@@ -77,6 +125,16 @@ class Creole_inclusion_img < Creole_inclusion_and_plugin
|
|
77
125
|
|
78
126
|
css = CSS.new( :log => wiki.log )
|
79
127
|
|
128
|
+
#
|
129
|
+
#Check for options
|
130
|
+
#
|
131
|
+
#Missing options:
|
132
|
+
#* align
|
133
|
+
#* border
|
134
|
+
#* height
|
135
|
+
#* hspace
|
136
|
+
#* name
|
137
|
+
#* vspace
|
80
138
|
options.each{|option|
|
81
139
|
case option
|
82
140
|
when /^(img)?css\s*=\s*(.*)/
|
@@ -86,6 +144,10 @@ class Creole_inclusion_img < Creole_inclusion_and_plugin
|
|
86
144
|
}
|
87
145
|
when /^(img)?class\s*=\s*(.*)/
|
88
146
|
@img[:class] << $2
|
147
|
+
when /^width\s*=\s*(.*)/
|
148
|
+
@img[:width] << $1
|
149
|
+
when /^longdesc\s*=\s*(.*)/ #gibt einen URI (nach RFC 2396) an, wo eine Langbeschreibung der Grafik zu finden ist
|
150
|
+
@img[:longdesc] << $1
|
89
151
|
else
|
90
152
|
wiki.log.warn("Img: Undefined option #{option}") if wiki.log.warn?
|
91
153
|
end #case option
|
@@ -117,11 +179,15 @@ class Creole_footnote_group < Creole_inclusion_and_plugin
|
|
117
179
|
end
|
118
180
|
end #Creole_inclusion_footnote_group
|
119
181
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
182
|
+
=begin rdoc
|
183
|
+
One footnote
|
184
|
+
|
185
|
+
Usage:
|
186
|
+
<<footnote|text>>
|
187
|
+
|
188
|
+
Bug: If you create more documents, you get a common footnote counting.
|
189
|
+
Has to be repaired one day.
|
190
|
+
=end
|
125
191
|
class Creole_footnote < Creole_inclusion_and_plugin
|
126
192
|
Creole::Plugins['footnote'] = self
|
127
193
|
#~ Creole::Inclusions['footnote'] = self
|
@@ -160,11 +226,47 @@ class Creole_footnote < Creole_inclusion_and_plugin
|
|
160
226
|
end
|
161
227
|
end #Creole_inclusion_footnote
|
162
228
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
229
|
+
=begin rdoc
|
230
|
+
Some short html
|
231
|
+
|
232
|
+
Usage:
|
233
|
+
{{html|code}}
|
234
|
+
|
235
|
+
Note:
|
236
|
+
There is also a placeholder for larger html:
|
237
|
+
<<<html
|
238
|
+
content
|
239
|
+
>>>
|
240
|
+
=end
|
241
|
+
class Creole_short_html < Creole_inclusion_and_plugin
|
242
|
+
#We don't use it as plugin. Closing > from html may e confusing as in:
|
243
|
+
# <<html|<em>kursuiv</em>>>
|
244
|
+
#~ Creole::Plugins['html'] = self
|
245
|
+
Creole::Inclusions['html'] = self
|
246
|
+
#~ Creole::Inclusions['footnote'] = self
|
247
|
+
def initialize( inclusionname, description, options, wiki )
|
248
|
+
super
|
249
|
+
options.each{|option|
|
250
|
+
#~ case option
|
251
|
+
#~ else
|
252
|
+
@wiki.log.warn("HTML with unknown option #{option.inspect} not found") if @wiki.log.warn?
|
253
|
+
#~ end
|
254
|
+
}
|
255
|
+
@source = description
|
256
|
+
|
257
|
+
end
|
258
|
+
#Return content only for html
|
259
|
+
def to_doc( target, options = {})
|
260
|
+
target == :html ? @source.to_doc( target, options ) : ''
|
261
|
+
end
|
262
|
+
end #Creole_inclusion_html
|
263
|
+
|
264
|
+
=begin rdoc
|
265
|
+
Eval the given ruby-code and put it as "raw text".
|
266
|
+
|
267
|
+
|
268
|
+
This is defined as a plugin.
|
269
|
+
=end
|
168
270
|
class Creole_plugin_ruby_raw < Creole_inclusion_and_plugin
|
169
271
|
#~ Creole::Inclusions['ruby'] = self
|
170
272
|
Creole::Plugins['ruby_raw'] = self
|
@@ -189,12 +291,13 @@ class Creole_plugin_ruby_raw < Creole_inclusion_and_plugin
|
|
189
291
|
end
|
190
292
|
end #Creole_plugin_ruby
|
191
293
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
294
|
+
=begin rdoc
|
295
|
+
Eval the given ruby-code and add it as a interpreted code.
|
296
|
+
|
297
|
+
This is defined as a plugin.
|
298
|
+
|
299
|
+
Ideas for further development: eval later, at doc generation.
|
300
|
+
=end
|
198
301
|
class Creole_plugin_ruby < Creole_inclusion_and_plugin
|
199
302
|
#~ Creole::Inclusions['ruby'] = self
|
200
303
|
Creole::Plugins['ruby'] = self
|
@@ -1,43 +1,76 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
=begin rdoc
|
2
|
+
Placeholder are defined in Creole-Syntax via <<< >>>
|
3
|
+
|
4
|
+
Placeholders get a name and optional parameters:
|
5
|
+
<<<name|parameter
|
6
|
+
|
7
|
+
Placeholders collect the content between <<< and >>>.
|
8
|
+
|
9
|
+
Derived classes are:
|
10
|
+
- Creole_dummy_placeholder
|
11
|
+
- Creole_html
|
12
|
+
- Creole_latex
|
13
|
+
- Creole_tabular
|
14
|
+
- Creole_creoletab
|
15
|
+
=end
|
12
16
|
class Creole_placeholder
|
13
|
-
|
14
|
-
|
17
|
+
include Docgenerator #get VERSION
|
18
|
+
=begin rdoc
|
19
|
+
Each placeholder get the wiki where it belongs to.
|
20
|
+
|
21
|
+
Parameters are optional.
|
22
|
+
|
23
|
+
Definition inside the wiki:
|
24
|
+
<<<name|parameters
|
25
|
+
content
|
26
|
+
>>>
|
27
|
+
Placeholders collect the content between <<< and >>>.
|
28
|
+
=end
|
29
|
+
def initialize( wiki, parameters = nil )
|
15
30
|
@wiki = wiki
|
31
|
+
#
|
32
|
+
@parameters = parameters
|
16
33
|
@log = @wiki.log
|
17
34
|
end
|
35
|
+
#
|
36
|
+
#Add the content between <<< and >>>.
|
18
37
|
def << (content)
|
19
38
|
@source = [] unless @source
|
20
39
|
@source << content
|
21
40
|
end
|
22
41
|
#
|
23
|
-
#
|
42
|
+
#Possibility to analyse the content.
|
24
43
|
def close()
|
44
|
+
@source.freeze
|
25
45
|
end
|
46
|
+
#Export it. Should be redefined by sub classes.
|
26
47
|
def to_doc( target, options = {})
|
27
48
|
@source.to_doc( target, options )
|
28
49
|
end
|
29
50
|
end #Creole_placeholder
|
30
51
|
|
31
|
-
|
32
|
-
|
33
|
-
|
52
|
+
=begin rdoc
|
53
|
+
Just a dummy for wrong definitions.
|
54
|
+
|
55
|
+
This class is used by Creole a default placeholder.
|
56
|
+
=end
|
34
57
|
class Creole_dummy_placeholder < Creole_placeholder
|
35
58
|
Creole::Placeholders.default = self
|
36
59
|
end #Creole_dummy_placeholder
|
37
60
|
|
38
|
-
|
39
|
-
|
40
|
-
|
61
|
+
=begin rdoc
|
62
|
+
Placeholder for pure HTML-output.
|
63
|
+
This content is ignored in LaTeX, Wiki... documents.
|
64
|
+
|
65
|
+
Usage:
|
66
|
+
<<<html
|
67
|
+
content
|
68
|
+
>>>
|
69
|
+
|
70
|
+
Note:
|
71
|
+
There is also a plugin for short html:
|
72
|
+
{{html|code}}
|
73
|
+
=end
|
41
74
|
class Creole_html < Creole_placeholder
|
42
75
|
Creole::Placeholders['html'] = self
|
43
76
|
#Return content only for html
|
@@ -46,16 +79,17 @@ class Creole_html < Creole_placeholder
|
|
46
79
|
end
|
47
80
|
end #Creole_html
|
48
81
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
82
|
+
=begin
|
83
|
+
Placeholder for pure LaTeX-output.
|
84
|
+
This content is ignored in HTML, Wiki... documents.
|
85
|
+
|
86
|
+
Idea for option: Parse the content by the wiki.
|
87
|
+
|
88
|
+
Pro:
|
89
|
+
-allows the usage of <<ruby|...
|
90
|
+
Cons:
|
91
|
+
-unexpected conversions?
|
92
|
+
=end
|
59
93
|
class Creole_latex < Creole_placeholder
|
60
94
|
Creole::Placeholders['latex'] = self
|
61
95
|
#Return content only for latex
|
@@ -64,6 +98,34 @@ class Creole_latex < Creole_placeholder
|
|
64
98
|
end
|
65
99
|
end #Creole_latex
|
66
100
|
|
101
|
+
#
|
102
|
+
#Collect
|
103
|
+
#
|
104
|
+
class Creole_comment < Creole_placeholder
|
105
|
+
Creole::Placeholders['comment'] = self
|
106
|
+
#Return content as a comment
|
107
|
+
def to_doc( target, options = {})
|
108
|
+
case target
|
109
|
+
when :html; to_html( options )
|
110
|
+
when :latex; to_latex( options )
|
111
|
+
when :context; to_latex( options )
|
112
|
+
when :creole; to_creole( options )
|
113
|
+
else
|
114
|
+
@log.error("Creole_comment not supported for target #{target.inspect}") if @log.error?
|
115
|
+
end
|
116
|
+
end
|
117
|
+
def to_html(options = {})
|
118
|
+
return "<!-- #{@source.join} -->"
|
119
|
+
end
|
120
|
+
alias :to_context :to_latex
|
121
|
+
def to_latex(options = {})
|
122
|
+
return @source.map{|l| "%#{l}" }.join
|
123
|
+
end
|
124
|
+
def to_creole(options = {})
|
125
|
+
return "<<<comment\n#{@source.join}>>>"
|
126
|
+
end
|
127
|
+
end #Creole_html
|
128
|
+
|
67
129
|
|
68
130
|
__END__
|
69
131
|
To be done:
|
@@ -16,21 +16,29 @@ lineoptions:
|
|
16
16
|
fixme
|
17
17
|
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
19
|
+
|
20
|
+
=begin
|
21
|
+
"Original" creole tab.
|
22
|
+
|
23
|
+
Defined as a collector, so we can collect the content first and
|
24
|
+
build the tabular later.
|
25
|
+
|
26
|
+
Details see http://www.wikicreole.org/wiki/Tables
|
27
|
+
|
28
|
+
Usage:
|
29
|
+
Tables are done like this:
|
30
|
+
|=header col1|=header col2|
|
31
|
+
|col1|col2|
|
32
|
+
|you |can |
|
33
|
+
|also |align\\ it. |
|
34
|
+
|
35
|
+
=end
|
32
36
|
class Creole_creoletab < Creole_placeholder
|
33
37
|
Creole::Placeholders['creole_tabular'] = self #original creole-tab definition
|
38
|
+
|
39
|
+
#Extend the class by a little structure
|
40
|
+
Cell = Struct.new('Cell', :content, :type )
|
41
|
+
|
34
42
|
#Finish the tabular.
|
35
43
|
#Each cell is added left justified.
|
36
44
|
def close(options)
|
@@ -75,10 +83,78 @@ class Creole_creoletab < Creole_placeholder
|
|
75
83
|
end
|
76
84
|
end #Creole_tab
|
77
85
|
|
78
|
-
|
79
|
-
|
86
|
+
=begin rdoc
|
87
|
+
Create tabulars analog to Wikimedia.
|
88
|
+
|
89
|
+
Usage:
|
90
|
+
before
|
91
|
+
<<<tabular
|
92
|
+
|!columns=3
|
93
|
+
|!columndescription=ccc
|
94
|
+
|=1
|
95
|
+
|=2
|
96
|
+
|=3
|
97
|
+
|-
|
98
|
+
|eins
|
99
|
+
|zwei
|
100
|
+
|drei
|
101
|
+
|-
|
102
|
+
|one
|
103
|
+
|two
|
104
|
+
|three
|
105
|
+
>>>
|
106
|
+
after
|
107
|
+
|
108
|
+
You can add additional settings to cells:
|
109
|
+
<<<tabular
|
110
|
+
|!columns=3
|
111
|
+
|eins||css=color: red
|
112
|
+
|css = zwei
|
113
|
+
|||class=empty
|
114
|
+
>>>
|
115
|
+
=end
|
80
116
|
class Creole_tabular < Creole_placeholder
|
81
117
|
Creole::Placeholders['tabular'] = self
|
118
|
+
|
119
|
+
#Extend the class by a little structure
|
120
|
+
class Cell
|
121
|
+
=begin rdoc
|
122
|
+
The content of a cell is separated from settings by two ||
|
123
|
+
|
124
|
+
If you have an empty cell with additional setting, you must write three |
|
125
|
+
|
126
|
+
Supported additional settings:
|
127
|
+
* css= define css-style options
|
128
|
+
* class= define HTML-class
|
129
|
+
* title= define a title (results in popup during mouse-over)
|
130
|
+
=end
|
131
|
+
def initialize( content, type, wiki, local_options )
|
132
|
+
@content, options = content.split(/\|\|/,2)
|
133
|
+
@content = '' unless @content #just in case of empty content
|
134
|
+
@options = {}
|
135
|
+
options.split(/\|/).each{|option|
|
136
|
+
case option
|
137
|
+
when /class\s*=\s*/
|
138
|
+
@options[:class] = $~.post_match
|
139
|
+
when /css\s*=\s*/
|
140
|
+
@options[:style] = $~.post_match
|
141
|
+
when /title\s*=\s*/
|
142
|
+
@options[:title] = $~.post_match
|
143
|
+
when '' #ignore them
|
144
|
+
else
|
145
|
+
wiki.log.warn("Creole_tabular::Cell: Undefined option #{option.inspect}")
|
146
|
+
end
|
147
|
+
} if options
|
148
|
+
@type = type #:td or :th
|
149
|
+
@wiki = wiki
|
150
|
+
@local_options = local_options
|
151
|
+
end
|
152
|
+
#Return the content as a element.
|
153
|
+
def cell_element()
|
154
|
+
element(@type,@options, @wiki.inline(@content, @local_options)).cr
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
82
158
|
#Build the tabular.
|
83
159
|
def close()
|
84
160
|
#~ fixme:
|
@@ -88,7 +164,17 @@ class Creole_tabular < Creole_placeholder
|
|
88
164
|
step = 0 #start
|
89
165
|
head = []
|
90
166
|
content = [[]]
|
91
|
-
|
167
|
+
|
168
|
+
options = { :log => @log }
|
169
|
+
local_options = {
|
170
|
+
:log => @log,
|
171
|
+
:inclusions => @wiki.inclusions,
|
172
|
+
:plugins => @wiki.plugins.dup
|
173
|
+
}
|
174
|
+
#No footnotes inside tabulars
|
175
|
+
local_options[:plugins].delete('footnote')
|
176
|
+
local_options[:plugins].delete('footnotes')
|
177
|
+
|
92
178
|
tab_css = CSS.new( :log => @log )
|
93
179
|
@source.each{|cell|
|
94
180
|
case cell
|
@@ -107,9 +193,11 @@ class Creole_tabular < Creole_placeholder
|
|
107
193
|
when /^\|-(.*)/ #new line
|
108
194
|
content << []
|
109
195
|
when /^\|=/ #header cell
|
110
|
-
content.last << Cell.new(@wiki.inline($~.post_match.strip,
|
196
|
+
#~ content.last << Cell.new(@wiki.inline($~.post_match.strip, local_options), :th)
|
197
|
+
content.last << Cell.new($~.post_match.strip, :th, @wiki, local_options)
|
111
198
|
when /^\|/ #content of a cell
|
112
|
-
content.last << Cell.new(@wiki.inline($~.post_match.strip,
|
199
|
+
#~ content.last << Cell.new(@wiki.inline($~.post_match.strip, local_options), :td)
|
200
|
+
content.last << Cell.new($~.post_match.strip, :td, @wiki, local_options)
|
113
201
|
else #error!
|
114
202
|
raise 'cell/log-warning'
|
115
203
|
end
|
@@ -130,8 +218,7 @@ class Creole_tabular < Creole_placeholder
|
|
130
218
|
content.each{|line|
|
131
219
|
@tab << row = element(:row).cr
|
132
220
|
line.each{|cell|
|
133
|
-
|
134
|
-
row << element(cell.type,{}, cell.content).cr
|
221
|
+
row << cell.cell_element.cr
|
135
222
|
}
|
136
223
|
}
|
137
224
|
end
|
@@ -141,6 +228,18 @@ class Creole_tabular < Creole_placeholder
|
|
141
228
|
|
142
229
|
end
|
143
230
|
|
231
|
+
|
232
|
+
if $0 == __FILE__
|
233
|
+
creole = Creole.new(
|
234
|
+
:name => 'tabular_creole',
|
235
|
+
:content => <<'creole'
|
236
|
+
<<<tabular
|
237
|
+
|
|
238
|
+
>>>
|
239
|
+
creole
|
240
|
+
)
|
241
|
+
puts creole.to_html
|
242
|
+
end
|
144
243
|
__END__
|
145
244
|
|
146
245
|
class Creole_tabular_cvs
|