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
@@ -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
|